/* ============================================================
 * main.css — 대시보드 메인 스타일시트
 * 
 * 포함된 영역:
 *   - 전역 reset, body, layout
 *   - 색상 시스템 (브라운 베이지 톤)
 *   - 반응형 breakpoint (≤768 모바일, ≤1024 태블릿)
 *   - 공용 컴포넌트 (탭바, 카드, 모달, 폼)
 *   - 서브-서브탭 표준 (lt-sub-tab-bar / lt-sub-tab / lt-tab-alert-badge)
 *   - 각 탭별 클래스 (wb-, lt-, sl-, sc-, stl-, ms-, ds-, bm-, cr-, lta-, ckhd- 등)
 * 
 * 원본 위치: index.html 7~2580 (분리 8차, 2026-05-24)
 * ============================================================ */

    * { box-sizing: border-box; margin: 0; padding: 0; }

    body {
      font-family: 'Malgun Gothic', -apple-system, sans-serif;
      background: #f0f2f5;
      color: #1a1a2e;
      min-height: 100vh;
    }

    header {
      background: #1a1a2e;
      color: #fff;
      padding: 14px 24px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      box-shadow: 0 2px 8px rgba(0,0,0,0.3);
    }

    .header-left { display: flex; align-items: center; gap: 12px; }
    .header-logo { height: 28px; width: auto; display: block; flex-shrink: 0; }
    .header-title-wrap h1 { font-size: 1.1rem; font-weight: 700; letter-spacing: -0.3px; color: #fff; }
    .header-right { display: flex; align-items: center; gap: 10px; }

    #status { font-size: 0.78rem; color: #a0aec0; margin-top: 3px; }

    .cache-badge {
      font-size: 0.72rem;
      font-weight: 700;
      padding: 3px 9px;
      border-radius: 10px;
      white-space: nowrap;
    }
    .badge-cached   { background: #d4edda; color: #155724; }
    .badge-realtime { background: #cce5ff; color: #004085; }
    .badge-loading  { background: #fff3cd; color: #856404; }

    .btn {
      padding: 8px 18px;
      border: none;
      border-radius: 6px;
      font-size: 0.88rem;
      cursor: pointer;
      font-family: inherit;
      font-weight: 600;
      transition: all 0.15s;
    }
    .btn-primary { background: #4f8ef7; color: #fff; }
    .btn-primary:hover { background: #3b7de8; }
    .btn-primary:disabled { background: #a0aec0; cursor: not-allowed; }

    .btn-ghost {
      background: transparent;
      color: #a0aec0;
      border: 1px solid #4a5568;
      font-size: 0.8rem;
      padding: 6px 13px;
    }
    .btn-ghost:hover { color: #fff; border-color: #718096; }
    .btn-ghost:disabled { opacity: 0.4; cursor: not-allowed; }

    .container { max-width: 1100px; margin: 0 auto; padding: 24px 16px; }

    .card {
      background: #fff;
      border-radius: 10px;
      box-shadow: 0 1px 4px rgba(0,0,0,0.08);
      margin-bottom: 20px;
      overflow: hidden;
    }

    .card-header {
      padding: 16px 20px;
      border-bottom: 1px solid #f0f4f8;
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .card-header h2 { font-size: 1rem; font-weight: 700; color: #1a202c; }

    .badge {
      background: #ebf4ff;
      color: #2b6cb0;
      font-size: 0.72rem;
      font-weight: 700;
      padding: 2px 8px;
      border-radius: 10px;
    }

    .card-body { padding: 20px; }

    .notice-box {
      background: #fffbeb;
      border: 1px solid #f6e05e;
      border-radius: 8px;
      padding: 14px 18px;
      font-size: 0.85rem;
      color: #744210;
      margin-bottom: 20px;
      line-height: 1.6;
    }

    .table-wrap { overflow-x: auto; }

    table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
    thead tr { background: #f7f9fc; }
    th {
      padding: 10px 14px;
      text-align: left;
      font-weight: 700;
      font-size: 0.8rem;
      color: #4a5568;
      border-bottom: 2px solid #e2e8f0;
      white-space: nowrap;
    }
    td {
      padding: 10px 14px;
      border-bottom: 1px solid #f0f4f8;
      color: #2d3748;
    }
    tr:last-child td { border-bottom: none; }
    tr:hover td { background: #fafbff; }

    .total-row td {
      background: #f7f9fc !important;
      font-weight: 700;
      border-top: 2px solid #e2e8f0;
    }

    .today-col { background: #fffbeb !important; }
    th.today-col { background: #fef3c7 !important; color: #92400e; }

    .yes {
      display: inline-block; background: #c6f6d5; color: #276749;
      font-weight: 700; padding: 2px 10px; border-radius: 10px; font-size: 0.82rem;
    }
    .no {
      display: inline-block; background: #f7fafc; color: #a0aec0;
      padding: 2px 10px; border-radius: 10px; font-size: 0.82rem;
    }
    .long-stay {
      display: inline-block; background: #fed7d7; color: #9b2c2c;
      font-weight: 700; padding: 2px 10px; border-radius: 10px; font-size: 0.82rem;
    }

    .long-term-exit-badge {
      background: #F3E8FF; color: #6B21A8;
      padding: 2px 7px; border-radius: 4px;
      font-size: 0.68rem; font-weight: 700;
      margin-left: 4px;
    }

    .prop-name-tag {
      font-size: 0.78rem; background: #edf2ff; color: #3c5a9a;
      padding: 1px 6px; border-radius: 4px; font-weight: 600;
    }

    .room-number-badge {
      display: inline-block;
      margin-right: 6px;
      padding: 2px 9px;
      border-radius: 10px;
      font-size: 0.95rem;
      font-weight: 700;
      vertical-align: middle;
      background: #ebf8ff;
      color: #2b6cb0;
      border: 1px solid #90cdf4;
    }
    .room-number-badge.unassigned {
      background: #f7fafc;
      color: #a0aec0;
      border-color: #e2e8f0;
      font-weight: 400;
    }

    .count-cell { text-align: center; font-weight: 600; }
    .count-zero { color: #cbd5e0; }
    .count-low  { color: #3182ce; }
    .count-mid  { color: #d69e2e; }
    .count-high { color: #e53e3e; font-weight: 700; }

    .day-label { font-size: 0.72rem; color: #718096; }
    .today-indicator {
      display: inline-block; background: #f6ad55; color: #fff;
      font-size: 0.65rem; padding: 0 5px; border-radius: 3px;
      margin-left: 4px; vertical-align: middle;
    }

    .empty { text-align: center; padding: 32px; color: #a0aec0; font-size: 0.9rem; }

    /* ── 배정 ── */
    .assign-meta {
      font-size: 0.82rem; color: #718096; margin-bottom: 14px;
      padding: 8px 12px; background: #f7f9fc;
      border: 1px solid #e2e8f0; border-radius: 6px;
    }
    .assign-meta strong { color: #2d3748; }
    .assignment-grid-wrap { overflow-x: visible; }
    .assignment-grid {
      display: grid;
      gap: 10px; margin-bottom: 20px;
      min-width: 0;
    }
    .emp-card {
      border: 1px solid #e2e8f0; border-radius: 10px; overflow: hidden; min-width: 0;
    }
    .emp-card.emp-new     { border-style: dashed; border-color: #cbd5e0; }
    .emp-body.drag-over   { box-shadow: inset 0 0 0 2px #4f8ef7; background: #ebf4ff; }
    .emp-header {
      background: #1a1a2e; color: #fff; padding: 7px 10px;
      display: flex; flex-direction: column; gap: 4px;
      cursor: grab;
    }
    .emp-header:active { cursor: grabbing; }
    .emp-card.emp-dragging { opacity: 0.45; }
    .emp-card.emp-drag-before { box-shadow: -3px 0 0 #4f8ef7; }
    .emp-card.emp-drag-after  { box-shadow:  3px 0 0 #4f8ef7; }
    /* 1행: 이름 + 추가 버튼 */
    .emp-header-names { display: flex; align-items: center; gap: 5px; min-width: 0; }
    .emp-header-names-text {
      font-weight: 700; font-size: 0.85rem; flex: 1; min-width: 0;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
      cursor: pointer; user-select: none;
    }
    .emp-header-names-text.placeholder { font-weight: 400; opacity: 0.45; font-size: 0.78rem; }
    /* 2행: 방 개수 + 아이콘 */
    .emp-header-row2 { display: flex; align-items: center; justify-content: space-between; }
    .emp-count {
      background: #4f8ef7; color: #fff; font-size: 0.68rem; font-weight: 700;
      padding: 1px 6px; border-radius: 10px; white-space: nowrap;
    }
    .emp-cap-btn {
      background: none; border: none; color: rgba(255,255,255,0.6);
      cursor: pointer; font-size: 0.85rem; padding: 1px 3px; border-radius: 4px;
      line-height: 1; flex-shrink: 0;
    }
    .emp-cap-btn:hover { color: #fff; background: rgba(255,255,255,0.15); }
    .emp-del-btn {
      background: none; border: none; color: rgba(255,255,255,0.5);
      cursor: pointer; font-size: 1rem; padding: 0 3px; line-height: 1; flex-shrink: 0;
    }
    .emp-del-btn:hover { color: #fc8181; background: rgba(255,255,255,0.1); border-radius: 4px; }
    .emp-staff-badge-add { background: rgba(255,255,255,0.1); border: 1px dashed rgba(255,255,255,0.45); color: rgba(255,255,255,0.75); font-size: 0.7rem; cursor: pointer; padding: 1px 7px; border-radius: 8px; white-space: nowrap; flex-shrink: 0; }
    .emp-staff-badge-add:hover { background: rgba(255,255,255,0.22); color: #fff; }
    .emp-staff-dd { position: fixed; z-index: 9999; background: #fff; border: 1px solid #e2e8f0; border-radius: 8px; box-shadow: 0 4px 16px rgba(0,0,0,0.18); min-width: 120px; max-height: 220px; overflow-y: auto; }
    .emp-staff-dd-item { padding: 7px 14px; font-size: 0.82rem; color: #2d3748; cursor: pointer; display: flex; justify-content: space-between; align-items: center; }
    .emp-staff-dd-item:hover { background: #edf2f7; }
    .emp-staff-dd-item.selected { color: #2b6cb0; font-weight: 600; }
    .emp-staff-dd-check { color: #4f8ef7; font-size: 0.8rem; }
    .emp-body { min-height: 60px; padding: 6px; background: #f7f9fc; }
    .drop-hint { text-align: center; color: #a0aec0; font-size: 0.78rem; padding: 18px 8px; }
    .prop-label {
      display: block; font-size: 0.68rem; font-weight: 700; color: #718096;
      text-transform: uppercase; letter-spacing: 0.04em;
      padding: 4px 2px 3px; border-top: 1px solid #e2e8f0; margin-top: 4px;
    }
    .prop-label:first-child { margin-top: 0; border-top: none; }
    .rcard {
      background: #fff; border: 1px solid #e2e8f0; border-radius: 7px;
      padding: 5px 7px; margin-bottom: 4px; cursor: grab; user-select: none;
      transition: opacity 0.12s;
    }
    .rcard:last-child { margin-bottom: 0; }
    .rcard:hover { box-shadow: 0 2px 6px rgba(0,0,0,0.09); }
    .rcard.dragging  { opacity: 0.3; }
    .rcard.rcard-linen { border-left: 3px solid #fc8181; }
    .rcard-num {
      font-size: 0.69rem; font-weight: 700; padding: 1px 6px; border-radius: 8px;
      background: #ebf8ff; color: #2b6cb0; border: 1px solid #90cdf4; white-space: nowrap;
    }
    .rcard-top { display: flex; align-items: center; gap: 4px; margin-bottom: 4px; }
    .rcard-name {
      font-weight: 600; font-size: 0.78rem; color: #1a202c; flex: 1;
      min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .rcard-tags { display: flex; flex-wrap: wrap; gap: 2px; }
    .rcard-note {
      display: block; width: 100%; margin-top: 4px;
      border: none; border-top: 1px solid #edf2f7; background: transparent;
      font-size: 0.71rem; font-family: inherit; color: #4a5568;
      padding: 2px 2px; outline: none; cursor: text;
    }
    .rcard-note::placeholder { color: #cbd5e0; }
    .rcard-bottom {
      display: flex; align-items: center; gap: 4px;
      border-top: 1px solid #edf2f7; margin-top: 4px;
    }
    .rcard-bottom .rcard-note { flex: 1; border-top: none; margin-top: 0; }
    .gsss-btn {
      flex-shrink: 0; font-size: 0.65rem; font-weight: 700;
      padding: 1px 5px; border-radius: 4px; line-height: 1.7;
      border: 1px solid #e2e8f0; background: transparent;
      color: #b0b8c4; cursor: pointer; font-family: inherit;
    }
    .gsss-btn.gsss-ss { background: #ed8936; color: #fff; border-color: #ed8936; }
    .tag {
      display: inline-block; font-size: 0.65rem; font-weight: 600;
      padding: 1px 4px; border-radius: 7px;
    }
    .tag-yes      { background: #c6f6d5; color: #276749; }
    .tag-no       { background: #f0f4f8; color: #a0aec0; }
    .tag-nights   { background: #ebf4ff; color: #2b6cb0; }
    .tag-linen    { background: #fed7d7; color: #9b2c2c; }
    .tag-longterm { background: #44337a; color: #fff; font-weight: 700; }
    .badge-toggleable { cursor: pointer; user-select: none; }
    .badge-off { background: #e2e8f0 !important; color: #a0aec0 !important; opacity: 0.55; }
    /* ── 수동 추가 배지 ── */
    .tag-manual { background: #e9d8fd; color: #6b21a8; font-weight: 700; }
    .rcard-manual { border-left: 3px solid #a78bfa !important; }
    .rcard-manual-del { float: right; background: none; border: none; color: #a0aec0; font-size: 1rem; cursor: pointer; padding: 0 2px; line-height: 1; }
    .rcard-manual-del:hover { color: #e53e3e; }
    /* ── 청소 지원 카드 ── */
    .tag-support { background: #c6f6d5; color: #276749; font-weight: 700; }
    .rcard-support { border-left: 3px solid #48bb78 !important; background: #f0fff4; }
    .rcard-support-del { float: right; background: none; border: none; color: #a0aec0; font-size: 1rem; cursor: pointer; padding: 0 2px; line-height: 1; }
    .rcard-support-del:hover { color: #e53e3e; }
    /* ── 청소 지원 모달 ── */
    .support-modal-overlay {
      display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.45);
      z-index: 9999; align-items: center; justify-content: center;
    }
    .support-modal-overlay.open { display: flex; }
    .support-modal {
      background: #fff; border-radius: 14px; padding: 24px; width: 100%; max-width: 360px;
      box-shadow: 0 8px 32px rgba(0,0,0,0.18); margin: 16px;
    }
    .support-modal h3 { font-size: 1rem; font-weight: 700; margin-bottom: 16px; color: #1a202c; }
    @media (max-width: 768px) {
      .support-modal { max-width: 100%; margin: 12px; padding: 18px; }
    }
    /* ── 수동 방 추가 모달 ── */
    .add-room-modal-overlay {
      display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.45);
      z-index: 9999; align-items: center; justify-content: center;
    }
    .add-room-modal-overlay.open { display: flex; }
    .add-room-modal {
      background: #fff; border-radius: 14px; padding: 24px; width: 100%; max-width: 420px;
      box-shadow: 0 8px 32px rgba(0,0,0,0.18); margin: 16px;
    }
    .add-room-modal h3 { font-size: 1rem; font-weight: 700; margin-bottom: 16px; color: #1a202c; }
    .add-room-field { margin-bottom: 14px; }
    .add-room-field label { display: block; font-size: 0.82rem; font-weight: 600; color: #4a5568; margin-bottom: 5px; }
    .add-room-field input, .add-room-field select {
      width: 100%; padding: 8px 10px; border: 1px solid #e2e8f0; border-radius: 7px;
      font-size: 0.9rem; font-family: inherit;
    }
    .add-room-toggles { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }
    .add-room-toggle {
      display: flex; align-items: center; gap: 6px; cursor: pointer;
      font-size: 0.84rem; color: #2d3748; background: #f7fafc;
      border: 1px solid #e2e8f0; border-radius: 8px; padding: 7px 12px;
      user-select: none; min-height: 44px;
    }
    .add-room-toggle input[type=checkbox] { width: 16px; height: 16px; cursor: pointer; }
    .add-room-modal-btns { display: flex; gap: 10px; justify-content: flex-end; }
    .add-room-modal-btns button { padding: 9px 20px; border-radius: 8px; border: none; font-size: 0.88rem; font-weight: 700; cursor: pointer; min-height: 44px; }
    .btn-modal-cancel { background: #e2e8f0; color: #4a5568; }
    .btn-modal-submit { background: #4f8ef7; color: #fff; }
    .btn-modal-submit:hover { background: #3b7de8; }
    @media (max-width: 768px) {
      .add-room-modal { max-width: 100%; margin: 12px; padding: 18px; }
    }
    /* ── 특수 카드 ── */
    .rcard-kitchen { border-left: 3px solid #f6ad55; background: #fffbeb; }
    .rcard-common  { border-left: 3px solid #63b3ed; background: #ebf4ff; }
    /* ── 미배정 섹션 (하단 가로 배치) ── */
    .unassigned-section { border-top: 2px dashed #e2e8f0; padding-top: 14px; margin-top: 4px; }
    .unassigned-header { font-size: 0.88rem; font-weight: 700; color: #4a5568; margin-bottom: 8px; }
    .unassigned-body {
      display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start;
      min-height: 60px; padding: 10px; background: #f7fafc;
      border-radius: 8px; border: 2px dashed #cbd5e0;
    }
    .unassigned-body.drag-over { box-shadow: inset 0 0 0 2px #4f8ef7; background: #ebf4ff; }
    .unassigned-body .rcard { margin-bottom: 0; width: 200px; flex-shrink: 0; }
    .unassigned-body .drop-hint { flex: 1; }
    .checkout-tabs { display: flex; flex-wrap: wrap; gap: 2px; padding: 8px 16px 0; background: #f8fafc; border-bottom: 1px solid #e2e8f0; }
    .checkout-tab { padding: 6px 11px; font-size: 0.8rem; font-weight: 600; cursor: pointer; border: none; background: none; border-bottom: 3px solid transparent; color: #718096; border-radius: 4px 4px 0 0; }
    .checkout-tab.active { color: #2d3748; border-bottom-color: #4f8ef7; background: #fff; }
    .checkout-tab:hover:not(.active) { color: #4a5568; background: #edf2f7; }
    .rcard.drop-before { border-top: 2px solid #4f8ef7; }
    .rcard.drop-after  { border-bottom: 2px solid #4f8ef7; }
    /* ── 공용 공간 ── */
    .common-section { border-top: 2px dashed #e2e8f0; padding-top: 16px; margin-top: 4px; }
    .common-title { font-size: 0.88rem; font-weight: 700; color: #4a5568; margin-bottom: 10px; }
    .common-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(155px,1fr)); gap: 7px; }
    .common-item {
      display: flex; align-items: center; gap: 7px;
      background: #f7f9fc; border: 1px solid #e2e8f0; border-radius: 7px; padding: 7px 10px;
    }
    .common-name { font-size: 0.8rem; font-weight: 600; color: #4a5568; white-space: nowrap; }
    .common-input {
      flex: 1; border: none; background: transparent;
      font-size: 0.8rem; font-family: inherit; color: #2d3748; outline: none; min-width: 0;
    }
    .common-input::placeholder { color: #cbd5e0; }

    .loading-spinner {
      text-align: center; padding: 40px; color: #718096; font-size: 0.9rem;
    }
    .loading-spinner::after {
      content: '';
      display: inline-block; width: 16px; height: 16px;
      border: 2px solid #cbd5e0; border-top-color: #4f8ef7;
      border-radius: 50%; animation: spin 0.7s linear infinite;
      margin-left: 10px; vertical-align: middle;
    }
    @keyframes spin { to { transform: rotate(360deg); } }

    .error-box {
      background: #fff5f5; border: 1px solid #fed7d7; border-radius: 6px;
      padding: 14px 18px; color: #c53030; font-size: 0.85rem; margin-bottom: 12px;
    }
    .error-box strong { display: block; margin-bottom: 6px; font-size: 0.95rem; }

    /* ── PC 캡처 강제 레이아웃 (body.capture-pc) ── */
    body.capture-pc .emp-card.mobile-hidden           { display: block !important; }
    body.capture-pc .unassigned-section.mobile-hidden { display: block !important; }
    body.capture-pc .mobile-emp-tabs                  { display: none  !important; }
    body.capture-pc .emp-card.emp-new                 { display: none  !important; }
    body.capture-pc .assignment-grid-wrap             { overflow-x: visible !important; }
    body.capture-pc .card                             { overflow: visible !important; }

    /* ── 탭 네비게이션 (2단계) ── */
    /* 상위 탭 */
    .top-tabs {
      background: #1a1a2e; padding: 0 16px; display: flex; gap: 0; flex-wrap: nowrap;
      border-bottom: 1px solid rgba(255,255,255,0.08); overflow-x: auto;
    }
    .top-tab {
      padding: 13px 20px; font-size: 0.92rem; font-weight: 700; cursor: pointer;
      border: none; background: transparent; color: rgba(255,255,255,0.4);
      border-bottom: 3px solid transparent; font-family: inherit; margin-bottom: -1px;
      white-space: nowrap; transition: color 0.15s;
    }
    .top-tab:hover { color: rgba(255,255,255,0.75); }
    .top-tab.active { color: #F5EDE4; border-bottom-color: #A8724A; }
    /* 하위 탭 */
    .sub-tabs {
      background: #fff; border-bottom: 2px solid #F0EBE5;
      padding: 0 16px; display: flex; gap: 0; overflow-x: auto; flex-wrap: nowrap;
    }
    .sub-tab {
      padding: 9px 16px; font-size: 0.83rem; font-weight: 600; cursor: pointer;
      border: none; background: transparent; color: #8B7B72;
      border-bottom: 2px solid transparent; font-family: inherit;
      margin-bottom: -2px; white-space: nowrap; transition: color 0.15s;
    }
    .sub-tab:hover { color: #2C2420; }
    .sub-tab.active { color: #A8724A; border-bottom-color: #A8724A; font-weight: 700; }
    /* Coming Soon 카드 */
    .coming-soon-card {
      max-width: 480px; margin: 60px auto; text-align: center;
      background: #fff; border: 1px solid #E8E0D8; border-radius: 16px; padding: 48px 32px;
      box-shadow: 0 2px 12px rgba(0,0,0,0.04);
    }
    .coming-soon-card .cs-icon { font-size: 2.8rem; margin-bottom: 12px; }
    .coming-soon-card h3 { font-size: 1.1rem; font-weight: 800; color: #2C2420; margin-bottom: 6px; }
    .coming-soon-card p { font-size: 0.85rem; color: #8B7B72; line-height: 1.6; }
    /* 하위 탭 가이드 접이식 */
    .sub-guide-box { background: #F8F6F3; border: 1px solid #E8E0D8; border-radius: 10px; margin: 12px 0 16px; }
    .sub-guide-box summary { cursor:pointer; font-weight:700; font-size:0.82rem; color:#8B7B72; padding:9px 14px; user-select:none; list-style:none; }
    .sub-guide-box summary::before { content:'📖 '; }
    /* 관리자 비밀번호 모달 */
    .admin-modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.4); z-index:9999; align-items:center; justify-content:center; }
    .admin-modal-overlay.open { display:flex; }
    .admin-modal { background:#fff; border-radius:16px; padding:32px 28px; width:340px; max-width:92vw; box-shadow:0 8px 32px rgba(0,0,0,0.18); }
    .admin-modal h3 { font-size:1rem; font-weight:800; color:#2C2420; margin-bottom:6px; }
    .admin-modal p  { font-size:0.82rem; color:#8B7B72; margin-bottom:18px; }
    .admin-modal input { width:100%; border:1px solid #E8E0D8; border-radius:8px; padding:10px 12px; font-size:0.9rem; font-family:inherit; outline:none; margin-bottom:14px; }
    .admin-modal input:focus { border-color:#A8724A; }
    .admin-modal-btns { display:flex; gap:8px; }
    .admin-modal-btns button { flex:1; padding:10px 0; border-radius:8px; border:none; cursor:pointer; font-size:0.87rem; font-weight:700; min-height:42px; font-family:inherit; }
    .admin-modal-confirm { background:#A8724A; color:#fff; }
    .admin-modal-cancel  { background:#F0EBE5; color:#8B7B72; }
    .admin-modal-err { font-size:0.78rem; color:#E85555; margin-top:-8px; margin-bottom:10px; display:none; }
    /* 작업 보드 (wb-*) */
    .wb-nav { display:flex; align-items:center; gap:10px; padding:8px 14px; background:#fff; border:1px solid #E8E0D8; border-radius:8px; flex-wrap:wrap; }
    .wb-nav button { padding:6px 12px; background:#fff; border:1px solid #D0C8BC; border-radius:5px; cursor:pointer; font-family:inherit; font-size:0.86rem; }
    .wb-nav button:hover { background:#F5F1EC; }
    .wb-nav > span { font-weight:700; font-size:1rem; color:#2C2420; padding:0 12px; }
    .wb-alert { padding:10px 14px; background:#FEF3C7; border:1px solid #F59E0B; border-radius:8px; color:#92400E; font-weight:600; font-size:0.86rem; }
    .wb-mgr-card { background:#fff; border:1px solid #E8E0D8; border-radius:8px; padding:8px 12px; }
    .wb-mgr-title { font-weight:700; font-size:0.82rem; margin-bottom:6px; color:#5F4E3F; }
    .wb-mgr-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
    .wb-mgr-day { background:#F8F6F3; border-radius:5px; padding:5px 4px; text-align:center; min-height:36px; display:flex; flex-direction:column; justify-content:center; gap:2px; }
    .wb-mgr-day.today { background:#FFF8F2; border:1px solid #A8724A; }
    .wb-mgr-day-label { font-size:0.66rem; color:#8B7B72; }
    .wb-mgr-day-label.sun { color:#E85555; }
    .wb-mgr-day-label.sat { color:#4f8ef7; }
    .wb-mgr-day-names { font-size:0.74rem; font-weight:600; color:#2C2420; line-height:1.25; word-break:keep-all; }
    .wb-mgr-day-empty { color:#D0C8BC; font-weight:400; }
    .wb-mgr-day-vac { font-size:0.66rem; color:#C0392B; margin-top:2px; line-height:1.2; word-break:keep-all; }
    .wb-split { display:grid; grid-template-columns:60% 40%; gap:14px; align-items:stretch; }
    @media (max-width: 900px) { .wb-split { grid-template-columns:1fr; } }
    .wb-left, .wb-right-col { display:flex; flex-direction:column; gap:14px; }
    .wb-cal-card { background:#fff; border:1px solid #E8E0D8; border-radius:8px; padding:10px; }
    .wb-dow-row { display:grid; grid-template-columns:repeat(7,1fr); padding:0 4px 6px; border-bottom:1px solid #F0EBE5; font-size:0.78rem; font-weight:700; color:#5F4E3F; text-align:center; margin-bottom:4px; }
    .wb-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:1px; background:#F0EBE5; border:1px solid #F0EBE5; border-radius:6px; overflow:hidden; }
    .wb-cell { position:relative; height:130px; padding:5px 6px; background:#fff; cursor:pointer; display:flex; flex-direction:column; box-sizing:border-box; }
    .wb-cell:hover:not(.other-month) { background:#FAFAF9; }
    .wb-cell.selected { background:#FFF8F2; box-shadow:inset 0 0 0 2px #2C2420; }
    .wb-cell.other-month { background:#F8F6F3; cursor:default; color:#D0C8BC; }
    .wb-cell.today .wb-cell-num { background:#A8724A; color:#fff; border-radius:50%; width:18px; height:18px; display:inline-flex; align-items:center; justify-content:center; font-weight:800; font-size:0.7rem; }
    .wb-cell-num { font-size:0.78rem; font-weight:600; color:#2C2420; line-height:1.2; }
    .wb-cell-num.sun { color:#E85555; }
    .wb-cell-num.sat { color:#4f8ef7; }
    .wb-cell.other-month .wb-cell-num { color:#D0C8BC; }
    .wb-cell-bars { flex:1; display:flex; flex-direction:column; gap:2px; padding:3px 0 4px; min-height:6px; overflow:hidden; }
    .wb-bar { height:5px; background:#FAC775; border-radius:2px; flex-shrink:0; }
    .wb-cell-dots { display:flex; flex-direction:column; gap:1px; align-items:stretch; min-height:6px; }
    .wb-dot-row { display:flex; gap:2px; align-items:center; min-height:8px; flex-wrap:wrap; }
    .wb-dot-row-label { font-size:9px; color:#5F4E3F; font-weight:600; min-width:18px; line-height:1; letter-spacing:-0.3px; }
    .wb-dot { width:6px; height:6px; border-radius:50%; flex-shrink:0; }
    /* 입실 = ▲ (위로) 초록 / 퇴실 = ▼ (아래로) 보라 — 한눈에 식별되도록 */
    .wb-dot.is-in {
      width:0; height:0; background:none !important; border-radius:0 !important;
      border-left:5px solid transparent; border-right:5px solid transparent;
      border-bottom:8px solid #15803D; flex-shrink:0;
    }
    .wb-dot.is-out {
      width:0; height:0; background:none !important; border-radius:0 !important;
      border-left:5px solid transparent; border-right:5px solid transparent;
      border-top:8px solid #7E22CE; flex-shrink:0;
    }
    .wb-dot.is-in.is-done  { border-bottom-color:#A0957F; opacity:0.6; }
    .wb-dot.is-out.is-done { border-top-color:#A0957F; opacity:0.6; }
    /* 셀 우상단 입퇴실 카운트 배지 */
    .wb-cell-lt-badge { position:absolute; top:3px; right:4px; display:flex; gap:3px; pointer-events:none; z-index:2; }
    .wb-lt-in-badge, .wb-lt-out-badge {
      font-size:9px; font-weight:700; line-height:1; padding:2px 5px; border-radius:9px;
      display:inline-flex; align-items:center; gap:1px;
    }
    .wb-lt-in-badge  { color:#14532D; background:#86EFAC; border:1px solid #4ADE80; }
    .wb-lt-out-badge { color:#581C87; background:#D8B4FE; border:1px solid #A855F7; }
    .wb-urgent-badge {
      font-size:9px; font-weight:700; line-height:1; padding:2px 5px; border-radius:9px;
      display:inline-flex; align-items:center; gap:1px;
      color:#7F1D1D; background:#FECACA; border:1px solid #F87171;
    }
    .wb-dot-empty { width:7px; height:7px; border-radius:50%; background:#fff; border:1px solid #5F4E3F; box-sizing:border-box; flex-shrink:0; }
    .wb-legend { display:flex; gap:10px; flex-wrap:wrap; margin-top:8px; padding:6px 4px 0; font-size:0.7rem; color:#8B7B72; border-top:1px dashed #F0EBE5; }
    .wb-legend-item { display:flex; align-items:center; gap:3px; }
    .wb-legend-dot { width:7px; height:7px; border-radius:50%; }
    .wb-legend-dot-empty { width:8px; height:8px; border-radius:50%; background:#fff; border:1px solid #5F4E3F; box-sizing:border-box; }
    .wb-legend-bar { width:14px; height:5px; border-radius:1px; background:#FAC775; }
    .wb-ongoing-card { background:#fff; border:1px solid #E8E0D8; border-radius:8px; padding:12px 14px; }
    .wb-ongoing-title { font-weight:700; font-size:0.86rem; margin-bottom:8px; color:#5F4E3F; }
    .wb-ongoing-row { display:flex; align-items:center; gap:10px; padding:6px 0; border-bottom:1px dashed #F0EBE5; font-size:0.82rem; cursor:pointer; }
    .wb-ongoing-row:hover { background:#FAFAF9; }
    .wb-ongoing-row:last-child { border-bottom:none; }
    .wb-ongoing-bar { width:36px; height:5px; background:#FAC775; border-radius:3px; flex-shrink:0; }
    .wb-ongoing-period { font-size:0.74rem; color:#8B7355; min-width:80px; }
    .wb-ongoing-title-text { flex:1; }
    .wb-right { background:#fff; border:1px solid #E8E0D8; border-radius:8px; padding:12px 14px; display:flex; flex-direction:column; min-height:600px; box-sizing:border-box; }
    .wb-right-hd { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; padding-bottom:8px; border-bottom:1px solid #F0EBE5; flex-shrink:0; }
    .wb-right-hd span { font-weight:700; font-size:0.95rem; color:#2C2420; }
    .wb-right-hd button { padding:5px 12px; background:#A8724A; color:#fff; border:none; border-radius:5px; cursor:pointer; font-size:0.82rem; font-family:inherit; font-weight:600; }
    #wb-right-content { flex:1; display:flex; flex-direction:column; gap:6px; min-height:0; }
    .wb-prop-grid { display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:1fr; gap:6px; flex:1; min-height:0; }
    .wb-prop-box { background:#FAF7F3; border:1px solid #EFE5DA; border-radius:8px; padding:7px 9px; display:flex; flex-direction:column; box-sizing:border-box; min-height:0; overflow:hidden; cursor:pointer; transition:background 0.12s, border-color 0.12s; }
    .wb-prop-box:hover { background:#FFF8F2; border-color:#E0D2BD; }
    .wb-prop-box:hover .wb-prop-add-hint { opacity:1 !important; color:#A8724A; }
    .wb-prop-box .wb-pcard { cursor:pointer; }
    .wb-prop-box-empty { transition:color 0.12s; }
    .wb-prop-box:hover .wb-prop-box-empty { color:#A8724A; }
    .wb-prop-box.common { grid-column:1 / -1; min-height:160px; max-height:220px; }
    .wb-prop-box-hd { font-size:0.72rem; font-weight:700; margin-bottom:5px; display:flex; align-items:center; gap:5px; flex-shrink:0; }
    .wb-prop-box-hd .wb-prop-count { margin-left:auto; font-weight:400; color:#888780; font-size:0.68rem; }
    .wb-prop-box-empty { font-size:0.72rem; color:#A0957F; padding:6px 0; text-align:center; }
    .wb-prop-cards { display:flex; flex-direction:column; gap:3px; overflow-y:auto; flex:1; padding-right:2px; }
    .wb-prop-cards::-webkit-scrollbar { width:5px; }
    .wb-prop-cards::-webkit-scrollbar-track { background:transparent; }
    .wb-prop-cards::-webkit-scrollbar-thumb { background:#D3CDC2; border-radius:3px; }
    .wb-pcard { background:#fff; border-left:3px solid #378ADD; padding:3px 6px; border-radius:3px; font-size:0.72rem; color:#2C2420; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; cursor:pointer; }
    .wb-pcard:hover { background:#FAFAF9; }
    .wb-pcard.urgent { border-left-color:#E24B4A; }
    .wb-pcard.important { border-left-color:#FAC775; }
    .wb-pcard.normal { border-left-color:#378ADD; }
    .wb-pcard.done { border-left-color:#888780; color:#888780; text-decoration:line-through; }
    .wb-pcard.checkin { background:#E1F5EE; color:#0F6E56; font-weight:500; border-left:none; padding:4px 7px; }
    .wb-pcard.checkout { background:#EEEDFE; color:#3C3489; font-weight:500; border-left:none; padding:4px 7px; }
    .wb-pcard.checkin.done, .wb-pcard.checkout.done { background:#F1EFE8; color:#888780; text-decoration:line-through; opacity:0.75; }
    .wb-pcard.long { background:#FFF8E0; border-left-width:5px; }
    .wb-pcard.long.urgent { border-left-color:#E24B4A; }
    .wb-pcard.long.important { border-left-color:#FAC775; }
    .wb-pcard.long.normal { border-left-color:#FAC775; }
    .wb-pcard.long.done { background:#F3F1ED; }
    .wb-section { margin-bottom:12px; background:#FAF7F3; border:1px solid #EFE5DA; border-radius:8px; padding:10px 12px; }
    .wb-section-title { font-size:0.8rem; font-weight:700; color:#8B5E3C; margin-bottom:8px; padding-bottom:6px; border-bottom:1px solid #EFE5DA; }
    .wb-card { display:flex; align-items:stretch; background:#fff; border:1px solid #E8E0D8; border-radius:6px; margin-bottom:5px; cursor:pointer; overflow:hidden; }
    .wb-card:hover { background:#FAFAF9; }
    .wb-card-bar { width:4px; flex-shrink:0; }
    .wb-card-body { flex:1; padding:7px 10px; min-width:0; }
    .wb-card-title { font-size:0.86rem; color:#2C2420; word-break:break-all; line-height:1.35; }
    .wb-card-title.done { text-decoration:line-through; color:#A0957F; }
    .wb-card-meta { font-size:0.7rem; color:#8B7355; margin-top:2px; }
    .wb-card-priority { padding:6px 10px; font-size:0.7rem; font-weight:700; align-self:center; flex-shrink:0; }
    .wb-card-priority.urgent { color:#E24B4A; }
    .wb-card-priority.important { color:#A47410; }
    /* 입퇴실 카드 제목 배지 (방안내/방체크) */
    .wb-lt-action-badge { font-size:0.62rem; padding:1px 6px; border-radius:9px; font-weight:600; margin-left:5px; white-space:nowrap; display:inline-block; vertical-align:middle; background:#FEF3C7; color:#92400E; border:1px solid #FCD34D; }
    .wb-checkin-line { font-size:0.8rem; padding:5px 9px; background:#fff; border:1px solid #E8E0D8; border-left:3px solid #1D9E75; border-radius:4px; margin-bottom:3px; color:#2C2420; }
    .wb-checkout-line { font-size:0.8rem; padding:5px 9px; background:#fff; border:1px solid #E8E0D8; border-left:3px solid #7F77DD; border-radius:4px; margin-bottom:3px; color:#2C2420; }
    .wb-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.5); display:flex; align-items:flex-start; justify-content:center; z-index:1000; padding:20px 0; overflow-y:auto; }
    .wb-modal { background:#fff; border-radius:10px; padding:18px 22px; max-width:480px; width:90%; max-height:calc(100vh - 40px); overflow-y:auto; margin:auto; box-shadow:0 10px 40px rgba(0,0,0,0.15); }
    .wb-modal h3 { margin:0 0 12px; font-size:1.05rem; color:#2C2420; }
    .wb-modal label { display:block; font-size:0.76rem; color:#5F4E3F; font-weight:600; margin:9px 0 3px; }
    .wb-modal input, .wb-modal select, .wb-modal textarea { width:100%; padding:7px 9px; border:1px solid #E8E0D8; border-radius:5px; font-size:0.86rem; font-family:inherit; box-sizing:border-box; }
    .wb-modal textarea { resize:vertical; }
    .wb-radio-group { display:flex; gap:14px; padding:6px 2px; flex-wrap:wrap; }
    .wb-radio-group label { font-weight:400; margin:0; display:flex; align-items:center; gap:4px; cursor:pointer; font-size:0.84rem; }
    .wb-radio-group input { width:auto; }
    .wb-modal-btns { display:flex; justify-content:flex-end; gap:8px; margin-top:14px; padding-top:10px; border-top:1px solid #F0EBE5; }
    /* 카드 편집 모달 — 작은 화면 반응형 */
    @media (max-width: 768px) {
      .wb-edit-modal { max-width:100vw !important; width:100vw !important; max-height:100vh !important; border-radius:0 !important; }
      .wb-edit-body { grid-template-columns:1fr !important; }
      .wb-edit-body > div:first-child { border-right:none !important; border-bottom:1px solid #F0EBE5; }
      .wb-edit-right { padding:14px 16px !important; }
      .wb-modal-overlay { padding:0 !important; align-items:stretch !important; }
    }
    /* 칩 hover */
    .wb-chip { transition:all 0.15s; }
    .wb-chip:hover:not(.wb-chip-active) { border-color:#A8724A; color:#A8724A; }
    /* 진행 로그 세로 타임라인 */
    #wb-f-timeline { padding-left:18px; }
    #wb-f-timeline::before { content:''; position:absolute; left:7px; top:6px; bottom:6px; width:2px; background:#E8E0D8; border-radius:1px; }
    .wb-tl-entry { background:#fff; padding:9px 11px; border:1px solid #E8E0D8; border-radius:7px; font-size:0.78rem; position:relative; margin-bottom:8px; padding-right:42px; }
    .wb-tl-entry::before { content:''; position:absolute; left:-15px; top:13px; width:8px; height:8px; border-radius:50%; background:#A8724A; border:2px solid #FAFAF9; box-sizing:content-box; }
    .wb-tl-entry-head { display:flex; justify-content:space-between; align-items:center; gap:6px; margin-bottom:3px; }
    .wb-tl-entry-author { font-weight:500; color:#5F4E3F; font-size:0.74rem; }
    .wb-tl-entry-time { font-size:0.7rem; color:#A0957F; }
    .wb-tl-entry-body { color:#2C2420; line-height:1.5; }
    .wb-tl-entry-del { position:absolute; right:6px; top:6px; background:#fff; border:1px solid #E8E0D8; border-radius:4px; cursor:pointer; color:#9B2C2C; font-size:0.84rem; padding:2px 8px; line-height:1; font-weight:bold; z-index:5; }
    .wb-tl-entry-del:hover { background:#FEE2E2; border-color:#FCA5A5; color:#C53030; }
    .wb-tl-empty { font-size:0.76rem; color:#A0957F; padding:14px 0; text-align:center; font-style:italic; }
    /* 진행 단계 통합 스타일 */
    .wb-stage-row { display:flex; align-items:center; gap:6px; padding:7px 10px; background:#fff; border:1px solid #E8E0D8; border-radius:6px; margin-bottom:6px; cursor:pointer; position:relative; }
    .wb-stage-row::before { content:''; position:absolute; left:-15px; top:13px; width:8px; height:8px; border-radius:50%; background:#A8724A; border:2px solid #FAFAF9; box-sizing:content-box; }
    .wb-stage-row.is-done { background:#F0FDF4; border-color:#86EFAC; }
    .wb-stage-row.is-done::before { background:#1D9E75; }
    .wb-stage-row.is-skip { background:#F5F4F0; border-color:#D0C8BC; opacity:0.7; }
    .wb-stage-row.is-skip::before { background:#B4B2A9; }
    .wb-stage-row.is-guide-active { border-color:#FCD34D; }
    .wb-stage-row.is-guide-active::before { background:#F59E0B; }
    .wb-stage-tag { font-size:0.62rem; padding:1px 6px; border-radius:9px; font-weight:600; flex-shrink:0; letter-spacing:0.2px; }
    .wb-tag-auto  { background:#DBEAFE; color:#1E40AF; }
    .wb-tag-final { background:#FEE2E2; color:#991B1B; }
    .wb-tag-guide { background:#FEF3C7; color:#92400E; }
    .wb-tag-check { background:#FEF3C7; color:#92400E; }
    .wb-stage-name { flex:1; color:#2C2420; font-size:0.78rem; }
    .wb-stage-row.is-done .wb-stage-name { text-decoration:line-through; color:#888780; }
    .wb-stage-row.is-skip .wb-stage-name { color:#888780; }
    .wb-stage-meta { font-size:0.66rem; color:#A0957F; white-space:nowrap; }
    .wb-stage-cb { width:14px; height:14px; flex-shrink:0; cursor:pointer; margin:0; }
    .wb-stage-extra { display:block; flex-basis:100%; margin-top:6px; padding-top:6px; border-top:1px dashed #F0EBE5; }
    .wb-guide-toggle { display:flex; gap:4px; margin-bottom:5px; }
    .wb-guide-toggle button { padding:3px 9px; font-size:0.7rem; border:1px solid #E8E0D8; background:#fff; border-radius:5px; cursor:pointer; font-family:inherit; color:#5F4E3F; font-weight:500; }
    .wb-guide-toggle button.active-need { background:#FEF3C7; border-color:#F59E0B; color:#92400E; }
    .wb-guide-toggle button.active-skip { background:#F5F4F0; border-color:#B4B2A9; color:#5F5E5A; }
    .wb-guide-time { display:flex; align-items:center; gap:6px; font-size:0.7rem; color:#5F4E3F; }
    .wb-guide-time input[type=time] { padding:3px 6px; border:1px solid #E8E0D8; border-radius:4px; font-size:0.7rem; font-family:inherit; }
    .wb-modal-btns button { padding:7px 14px; border-radius:5px; cursor:pointer; font-size:0.84rem; font-family:inherit; border:1px solid #D0C8BC; background:#fff; color:#5F4E3F; font-weight:600; }
    .wb-modal-btns button:last-child { background:#A8724A; color:#fff; border-color:#A8724A; }
    #wb-modal-delete { background:#FEE2E2 !important; border-color:#C53030 !important; color:#9B1C1C !important; }
    /* 모바일: 본문 2열 → 1열, 우측 패널 max-height 줄임 */
    @media (max-width:768px) {
      .wb-modal-body { grid-template-columns:1fr !important; }
      .wb-modal-body > div:last-child { border-left:none !important; border-top:1px solid #F0EBE5 !important; min-height:auto !important; }
      #wb-f-timeline { max-height:240px !important; }
    }

    /* 매니저 인수인계 메모 달력 */
    .memo-layout { display:grid; grid-template-columns:1fr 340px; gap:16px; align-items:start; }
    .memo-cal-card { background:#fff; border:1px solid #E8E0D8; border-radius:14px; padding:14px 16px; }
    .memo-cal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; gap:8px; flex-wrap:wrap; }
    .memo-cal-title { font-size:1rem; font-weight:800; color:#2C2420; }
    .memo-cal-nav { display:flex; align-items:center; gap:6px; }
    .memo-cal-nav button { background:#F8F6F3; border:1px solid #E8E0D8; border-radius:7px; padding:4px 10px; cursor:pointer; font-size:0.82rem; font-family:inherit; }
    .memo-cal-nav button:hover { background:#F0EBE5; }
    .memo-cal-today-btn { background:#A8724A !important; color:#fff !important; border-color:#A8724A !important; }
    .memo-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:0; }
    .memo-cal-dow { text-align:center; font-size:0.72rem; font-weight:700; color:#8B7B72; padding:4px 0; }
    .memo-cal-dow:first-child { color:#E85555; }
    .memo-cal-dow:last-child  { color:#4f8ef7; }
    .memo-cal-day { min-height:160px; border-radius:0; padding:4px 5px; cursor:pointer; transition:background 0.12s; position:relative; border:0.5px solid #E8E0D8; user-select:none; overflow:visible; }
    .memo-cal-day:hover { background:#F8F6F3; }
    .memo-cal-day.today .memo-cal-daynum { background:#A8724A; color:#fff; border-radius:50%; width:22px; height:22px; display:inline-flex; align-items:center; justify-content:center; font-weight:800; }
    .memo-cal-day.selected { background:#FFF8F5; border-color:#A8724A; }
    .memo-cal-day.other-month .memo-cal-daynum { color:#D0C8C0; }
    .memo-cal-day.sun .memo-cal-daynum { color:#E85555; }
    .memo-cal-day.sat .memo-cal-daynum { color:#4f8ef7; }
    .memo-cal-day.today.sun .memo-cal-daynum,
    .memo-cal-day.today.sat .memo-cal-daynum { color:#fff; }
    .memo-cal-daynum { font-size:0.8rem; font-weight:700; display:inline-block; width:22px; text-align:center; }
    .memo-cal-memos { max-height:120px; overflow-y:auto; margin-top:3px; }
    .memo-cal-mini { font-size:0.62rem; line-height:1.3; border-left:2px solid #93C5FD; padding:0 3px; margin-bottom:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#374151; border-radius:0 2px 2px 0; }
    .memo-cal-mini-important { border-left-color:#F59E0B; background:#FFFBEB; color:#92400E; }
    .memo-cal-mini-urgent    { border-left-color:#E85555; background:#FFF0F0; color:#B91C1C; }
    .memo-cal-mini.done { opacity:0.4; text-decoration:line-through; }
    .memo-cal-day.drag-range { background:#FDF6F0 !important; border-color:#A8724A !important; }
    .memo-cal-bar { position:absolute; left:0; right:0; height:16px; line-height:16px; padding:0 5px; font-size:0.6rem; overflow:visible; white-space:nowrap; color:#7B4F2E; font-weight:600; background:rgba(168,114,74,0.22); border-top:1px solid rgba(168,114,74,0.4); border-bottom:1px solid rgba(168,114,74,0.4); cursor:pointer; z-index:2; }
    .memo-cal-bar.bar-start  { border-radius:8px 0 0 8px; border-left:1px solid rgba(168,114,74,0.4); left:3px; right:-0.5px; }
    .memo-cal-bar.bar-mid    { border-radius:0; left:-0.5px; right:-0.5px; }
    .memo-cal-bar.bar-end    { border-radius:0 8px 8px 0; border-right:1px solid rgba(168,114,74,0.4); left:-0.5px; right:3px; }
    .memo-cal-bar.bar-single { border-radius:8px; border:1px solid rgba(168,114,74,0.4); left:3px; right:3px; }
    .memo-cal-bar.urgent-bar { background:rgba(232,85,85,0.18); border-color:rgba(232,85,85,0.4); color:#B91C1C; }
    .memo-cal-bar.important-bar { background:rgba(245,158,11,0.18); border-color:rgba(245,158,11,0.4); color:#92400E; }
    .memo-drag-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.45); z-index:9100; display:flex; align-items:center; justify-content:center; }
    .memo-drag-modal { background:#fff; border-radius:14px; padding:22px 20px; width:360px; max-width:94vw; box-shadow:0 8px 32px rgba(0,0,0,0.18); }
    .memo-drag-modal-title { font-size:0.95rem; font-weight:800; color:#2C2420; margin-bottom:14px; }
    .memo-drag-modal label { font-size:0.75rem; font-weight:700; color:#4a5568; display:block; margin-bottom:3px; margin-top:10px; }
    .memo-drag-modal label:first-of-type { margin-top:0; }
    .memo-drag-modal textarea, .memo-drag-modal select { width:100%; border:1px solid #E8E0D8; border-radius:7px; padding:7px 9px; font-size:0.83rem; font-family:inherit; background:#fff; box-sizing:border-box; }
    .memo-drag-modal textarea { resize:vertical; min-height:70px; }
    .memo-drag-modal-btns { display:flex; gap:8px; margin-top:14px; justify-content:flex-end; }
    .memo-panel-card { background:#fff; border:1px solid #E8E0D8; border-radius:14px; padding:14px 16px; position:sticky; top:16px; }
    .memo-panel-hd { font-size:0.9rem; font-weight:800; color:#2C2420; margin-bottom:12px; display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; }
    .memo-panel-add { background:#A8724A; color:#fff; border:none; border-radius:8px; padding:5px 13px; cursor:pointer; font-size:0.8rem; font-weight:700; font-family:inherit; }
    .memo-item { border-radius:8px; padding:10px 12px; margin-bottom:8px; border-left:3px solid #cbd5e0; background:#fff; border:1px solid #F0EBE5; border-left-width:3px; }
    .memo-item.important { background:#FFF8E1; border-color:#FCD34D; border-left-color:#F59E0B; }
    .memo-item.urgent    { background:#FFEBEB; border-color:#FCA5A5; border-left-color:#E85555; }
    .memo-item.done .memo-item-content { text-decoration:line-through; opacity:0.45; }
    .memo-item-content { font-size:0.85rem; color:#2C2420; line-height:1.5; margin-bottom:4px; }
    .memo-item-meta { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:0.72rem; color:#8B7B72; }
    .memo-item-actions { display:flex; gap:6px; margin-top:6px; }
    .memo-check-btn { background:none; border:1px solid #E8E0D8; border-radius:5px; padding:2px 8px; cursor:pointer; font-size:0.72rem; font-family:inherit; }
    .memo-del-btn   { background:none; border:1px solid #FECACA; color:#E85555; border-radius:5px; padding:2px 8px; cursor:pointer; font-size:0.72rem; font-family:inherit; }
    .memo-edit-btn  { background:none; border:1px solid #93C5FD; color:#1D4ED8; border-radius:5px; padding:2px 8px; cursor:pointer; font-size:0.72rem; font-family:inherit; }
    .memo-alert-banner { background:#FFF3CD; border:1px solid #FCD34D; border-radius:10px; padding:10px 14px; margin-bottom:12px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
    .memo-alert-text { font-size:0.85rem; font-weight:700; color:#92400E; cursor:pointer; }
    .memo-alert-dismiss { background:none; border:none; font-size:1rem; cursor:pointer; color:#92400E; line-height:1; padding:0 2px; }
    .memo-edit-ta { width:100%; min-height:60px; border:1px solid #E8E0D8; border-radius:7px; padding:7px 9px; font-size:0.83rem; font-family:inherit; resize:vertical; }
    .memo-priority-badge { display:inline-block; border-radius:5px; padding:1px 6px; font-size:0.69rem; font-weight:700; }
    .memo-pb-normal    { background:#DBEAFE; color:#1D4ED8; }
    .memo-pb-important { background:#FEF3C7; color:#92400E; }
    .memo-pb-urgent    { background:#FEE2E2; color:#B91C1C; }
    /* 메모 추가 폼 */
    .memo-add-form { background:#F8F6F3; border:1px solid #E8E0D8; border-radius:10px; padding:12px 14px; margin-top:10px; }
    .memo-add-form label { font-size:0.75rem; font-weight:700; color:#4a5568; display:block; margin-bottom:3px; margin-top:8px; }
    .memo-add-form label:first-child { margin-top:0; }
    .memo-add-form input, .memo-add-form textarea, .memo-add-form select { width:100%; border:1px solid #E8E0D8; border-radius:7px; padding:7px 9px; font-size:0.83rem; font-family:inherit; background:#fff; }
    .memo-add-form textarea { resize:vertical; min-height:60px; }
    .memo-add-form-btns { display:flex; gap:8px; margin-top:10px; justify-content:flex-end; }
    .memo-form-save { background:#A8724A; color:#fff; border:none; border-radius:7px; padding:7px 18px; cursor:pointer; font-size:0.83rem; font-weight:700; font-family:inherit; }
    .memo-form-cancel { background:#F0EBE5; color:#8B7B72; border:none; border-radius:7px; padding:7px 14px; cursor:pointer; font-size:0.83rem; font-family:inherit; }
    .memo-empty { font-size:0.84rem; color:#a0aec0; text-align:center; padding:24px 0; }
    /* ── 메모 상태별 바 ── */
    .memo-bar-new      { background:#FCE8DC !important; color:#A8724A !important; border-top-color:#A8724A !important; border-bottom-color:#A8724A !important; }
    .memo-bar-new.bar-start,.memo-bar-new.bar-single { border-left-color:#A8724A !important; }
    .memo-bar-new.bar-end   { border-right-color:#A8724A !important; }
    .memo-bar-tracking { background:#FFF4D6 !important; color:#8A6D1D !important; border-top-color:#D69E2E !important; border-bottom-color:#D69E2E !important; }
    .memo-bar-tracking.bar-start,.memo-bar-tracking.bar-single { border-left-color:#D69E2E !important; }
    .memo-bar-tracking.bar-end { border-right-color:#D69E2E !important; }
    .memo-bar-done     { background:#E6EEE8 !important; color:#789080 !important; border-top-color:#9FB3A5 !important; border-bottom-color:#9FB3A5 !important; text-decoration:line-through; opacity:0.7; }
    /* ── 메모 상태 배지 ── */
    .status-new      { display:inline-block; background:#FCE8DC; color:#A8724A; border-radius:10px; padding:1px 9px; font-size:0.7rem; font-weight:700; }
    .status-tracking { display:inline-block; background:#FFF4D6; color:#8A6D1D; border-radius:10px; padding:1px 9px; font-size:0.7rem; font-weight:700; }
    .status-done     { display:inline-block; background:#E6EEE8; color:#789080; border-radius:10px; padding:1px 9px; font-size:0.7rem; font-weight:700; }
    /* ── 타임라인 ── */
    .memo-tl-wrap  { margin:10px 0; border-left:2px solid #e2e8f0; padding-left:12px; }
    .memo-tl-item  { position:relative; margin-bottom:10px; }
    .memo-tl-item:last-child { margin-bottom:0; }
    .memo-tl-dot   { position:absolute; left:-17px; top:3px; width:9px; height:9px; border-radius:50%; border:2px solid #fff; }
    .memo-tl-dot.created  { background:#A8724A; }
    .memo-tl-dot.tracking { background:#D69E2E; }
    .memo-tl-dot.done     { background:#48BB78; }
    .memo-tl-meta  { font-size:0.72rem; color:#718096; margin-bottom:2px; }
    .memo-tl-note  { font-size:0.8rem; color:#2d3748; }
    .memo-tl-next  { display:inline-block; background:#E0F0FF; color:#2B6CB0; border-radius:5px; padding:1px 7px; font-size:0.68rem; margin-top:3px; }
    /* ── 메모 상세 모달 ── */
    .memo-detail-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:9200; display:flex; align-items:center; justify-content:center; }
    .memo-detail-modal   { background:#fff; border-radius:14px; padding:22px 20px; width:440px; max-width:95vw; max-height:88vh; overflow-y:auto; box-shadow:0 8px 32px rgba(0,0,0,0.2); }
    .memo-detail-hd      { font-size:0.95rem; font-weight:800; color:#2C2420; margin-bottom:14px; display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
    .memo-detail-close   { background:none; border:none; font-size:1.2rem; cursor:pointer; color:#a0aec0; line-height:1; flex-shrink:0; }
    .memo-detail-sec     { font-size:0.78rem; font-weight:700; color:#718096; margin:12px 0 6px; text-transform:uppercase; letter-spacing:0.04em; }
    .memo-add-tl-form    { background:#F8F6F3; border:1px solid #E8E0D8; border-radius:10px; padding:12px; margin-top:10px; }
    .memo-add-tl-form label { font-size:0.73rem; font-weight:700; color:#4a5568; display:block; margin-bottom:3px; margin-top:8px; }
    .memo-add-tl-form label:first-child { margin-top:0; }
    .memo-add-tl-form textarea,.memo-add-tl-form input,.memo-add-tl-form select { width:100%; border:1px solid #E8E0D8; border-radius:7px; padding:6px 9px; font-size:0.82rem; font-family:inherit; background:#fff; box-sizing:border-box; }
    .memo-radio-row { display:flex; gap:14px; margin:6px 0; }
    .memo-radio-row label { display:flex; align-items:center; gap:5px; font-size:0.82rem; font-weight:600; color:#4a5568; cursor:pointer; margin:0; }
    @media (max-width:900px) { .memo-layout { grid-template-columns:1fr; } .memo-panel-card { position:static; } }
    @media (max-width:640px) {
      .top-tabs { padding:0 6px; }
      .top-tab  { padding:10px 12px; font-size:0.82rem; }
      .sub-tabs { padding:0 6px; }
      .sub-tab  { padding:8px 10px; font-size:0.78rem; }
    }

    /* ── 가이드 ── */
    .guide-section-title {
      font-size: 0.95rem; font-weight: 700; color: #1a202c;
      margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid #e2e8f0;
    }
    /* 장기 게스트 등록 가이드 */
    .lt-guide-example {
      display: flex; align-items: center; gap: 10px;
      background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 10px 14px;
    }
    .lt-guide-ex-text {
      flex: 1; font-family: monospace; font-size: 0.85rem; color: #2d3748;
      word-break: break-all; line-height: 1.5;
    }
    .lt-guide-copy-btn {
      flex-shrink: 0; background: #4f8ef7; color: #fff; border: none;
      border-radius: 6px; padding: 5px 12px; font-size: 0.78rem; font-weight: 700;
      cursor: pointer; transition: background 0.15s;
    }
    .lt-guide-copy-btn:hover { background: #3b7de8; }
    .lt-guide-copy-btn.copied { background: #48bb78; }
    .lt-guide-field-row {
      display: flex; align-items: flex-start; gap: 12px;
      padding: 8px 12px; border-radius: 8px; background: #fafafa; border: 1px solid #f0f0f0;
    }
    .lt-guide-field-tag {
      flex-shrink: 0; font-size: 0.78rem; font-weight: 700; padding: 3px 10px;
      border-radius: 20px; white-space: nowrap; margin-top: 1px;
    }
    .lt-guide-field-desc {
      font-size: 0.85rem; color: #4a5568; line-height: 1.6;
    }
    @media (max-width: 600px) {
      .lt-guide-example { flex-direction: column; align-items: flex-start; gap: 8px; }
      .lt-guide-copy-btn { align-self: flex-end; }
    }
    .guide-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
    .guide-table th {
      background: #f7f9fc; padding: 9px 14px; text-align: left; font-weight: 700;
      font-size: 0.8rem; color: #4a5568; border-bottom: 2px solid #e2e8f0; white-space: nowrap;
    }
    .guide-table td { padding: 9px 14px; border-bottom: 1px solid #f0f4f8; color: #2d3748; vertical-align: top; }
    .guide-table tr:last-child td { border-bottom: none; }

    /* 플로우 다이어그램 */
    .flow-diagram { display: flex; flex-direction: column; align-items: center; gap: 8px; }
    .flow-row { display: flex; gap: 16px; align-items: stretch; justify-content: center; flex-wrap: wrap; }
    .flow-box {
      background: #ebf4ff; border: 1px solid #90cdf4; border-radius: 8px;
      padding: 12px 20px; font-size: 0.85rem; font-weight: 600; color: #2b6cb0;
      text-align: center; min-width: 200px;
    }
    .flow-box.server { background: #f0fff4; border-color: #9ae6b4; color: #276749; }
    .flow-box.output { background: #fffbeb; border-color: #f6e05e; color: #744210; }
    .flow-label { display: block; font-size: 0.72rem; font-weight: 400; opacity: 0.85; margin-top: 3px; }
    .flow-arrow { font-size: 1.4rem; color: #a0aec0; line-height: 1; }

    /* 기능 목록 */
    .feature-list { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px; }
    .feature-item { display: flex; gap: 10px; background: #f7f9fc; border: 1px solid #e2e8f0; border-radius: 7px; padding: 10px 14px; }
    .feature-icon { font-size: 1.1rem; flex-shrink: 0; line-height: 1.5; }
    .feature-desc { font-size: 0.82rem; color: #4a5568; line-height: 1.6; }
    .feature-desc strong { display: block; font-size: 0.85rem; color: #1a202c; margin-bottom: 2px; }

    /* ── 카드 사용법 가이드 ── */
    .card-usage-grid {
      display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: start;
    }
    .card-badge-list {
      list-style: none; padding: 0; margin: 0; font-size: 0.83rem; color: #2d3748; line-height: 1.5;
    }
    .card-badge-list li { padding: 6px 0; border-bottom: 1px solid #f0f4f8; }
    .card-badge-list li:last-child { border-bottom: none; }
    .card-badge-list .badge-divider { padding: 2px 0; border-bottom: 1px solid #e2e8f0; }
    .card-badge-list .en { font-size: 0.74rem; color: #718096; }
    .border-legend {
      display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px;
    }
    .border-legend-item {
      display: flex; align-items: center; gap: 5px; font-size: 0.76rem; color: #4a5568;
    }
    .border-swatch {
      display: inline-block; width: 14px; height: 14px; border-radius: 3px;
      border: 1px solid #e2e8f0; flex-shrink: 0;
    }
    @media (max-width: 768px) {
      .card-usage-grid { grid-template-columns: 1fr; }
    }

    /* ── 모바일 체크아웃 카드 ── */
    .checkout-cards-mobile { display: none; }
    .co-card {
      background: #fff; border: 1px solid #e2e8f0; border-radius: 8px;
      padding: 10px 14px; margin-bottom: 8px;
    }
    .co-card-row1 { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; flex-wrap: wrap; }
    .co-prop {
      font-size: 0.72rem; font-weight: 700; background: #edf2ff; color: #3c5a9a;
      padding: 1px 6px; border-radius: 4px; white-space: nowrap;
    }
    .co-type { font-size: 0.82rem; color: #4a5568; }
    .co-card-row2 { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }

    /* ── 모바일 직원 탭 ── */
    .mobile-emp-tabs { display: none; }
    .mobile-emp-tab {
      padding: 6px 13px; font-size: 0.8rem; font-weight: 600; cursor: pointer;
      border: 1px solid #e2e8f0; background: #f7f9fc; color: #718096;
      border-radius: 20px; white-space: nowrap; font-family: inherit;
    }
    .mobile-emp-tab.active { background: #1a1a2e; color: #fff; border-color: #1a1a2e; }

    /* ── 체크아웃 / 주간 현황 접기 버튼 ── */
    .checkout-toggle-btn-wrap { display: block; }
    .weekly-toggle-btn-wrap { display: block; }
    #checkout-content.collapsed { display: none; }
    #weekly-content.collapsed { display: none; }
    .weekly-toggle-btn {
      width: 100%; padding: 9px 12px; font-size: 0.85rem; font-weight: 600;
      cursor: pointer; border: 1px solid #e2e8f0; background: #f7f9fc;
      color: #4a5568; border-radius: 6px; text-align: left; font-family: inherit;
    }

    /* ── 주간 체크아웃 현황 테이블 ── */
    .wt-card { background:#fff; border:0.5px solid #e2e8f0; border-radius:12px; overflow:hidden; }
    .wt-card-hd { display:flex; align-items:center; justify-content:space-between; padding:14px 16px 10px; }
    .wt-card-title { font-size:1rem; font-weight:700; color:#1a202c; }
    .wt-card-badge { font-size:0.72rem; color:#718096; background:#f7f9fc; border:0.5px solid #e2e8f0; border-radius:20px; padding:3px 10px; }
    .wt-legend { display:flex; gap:14px; padding:0 16px 12px; }
    .wt-legend-item { display:flex; align-items:center; gap:5px; font-size:0.72rem; color:#4a5568; }
    .wt-legend-dot { width:12px; height:12px; border-radius:3px; flex-shrink:0; }
    .wt-outer { overflow-x:auto; -webkit-overflow-scrolling:touch; }
    .wt-table { width:100%; border-collapse:collapse; }
    .wt-table thead tr { background:#f7f9fc; }
    .wt-table thead th { padding:10px 8px; text-align:center; font-weight:700; font-size:0.8rem; color:#4a5568; border-bottom:2px solid #e2e8f0; border-right:0.5px solid #e2e8f0; white-space:nowrap; }
    .wt-table thead th:last-child { border-right:none; }
    .wt-table thead th.wt-prop-hd { text-align:left; padding-left:14px; }
    .wt-date-sub { font-size:0.68rem; font-weight:400; display:block; margin-top:1px; color:#718096; }
    .wt-table tbody td { border-bottom:0.5px solid #f0f4f8; border-right:0.5px solid #e2e8f0; vertical-align:middle; }
    .wt-table tbody td:last-child { border-right:none; }
    .wt-table tbody tr:last-child td { border-bottom:none; }
    .wt-prop-cell { font-weight:600; font-size:0.82rem; color:#2d3748; background:#f7f9fc; padding:12px 8px 12px 14px; white-space:nowrap; min-width:170px; border-right:0.5px solid #e2e8f0 !important; }
    .wt-day-cell { padding:6px 8px; text-align:center; height:80px; overflow:hidden; vertical-align:middle; min-width:76px; }
    .wt-val-act { font-size:15px; font-weight:500; color:#1a202c; line-height:1.3; }
    .wt-val-act-zero { font-size:15px; font-weight:400; color:#cbd5e0; }
    .wt-val-exp { font-size:11px; color:#a0aec0; margin-top:3px; line-height:1.5; }
    .wt-val-exp-badge { display:inline-block; background:#ebf8ff; color:#2b6cb0; border-radius:8px; padding:0 6px; font-size:11px; margin-left:3px; }
    .wt-diff-badge { display:inline-block; border-radius:10px; padding:1px 8px; font-size:0.7rem; font-weight:700; margin-top:4px; white-space:nowrap; }
    .wt-diff-up  { background:#fed7d7; color:#c53030; }
    .wt-diff-dn  { background:#bee3f8; color:#2b6cb0; }
    .wt-diff-eq  { background:#e2e8f0; color:#718096; font-weight:400; }
    /* 합계 행 */
    .wt-total-row td { border-top:2px solid #e2e8f0 !important; background:#f7f9fc !important; }
    .wt-total-row .wt-prop-cell { color:#2d3748; font-weight:700; }
    /* 반응형 */
    .wt-desktop { display:block; }
    .wt-mobile  { display:none; }
    /* 모바일 카드 */
    .wt-mc { background:#fff; border-radius:10px; box-shadow:0 1px 4px rgba(0,0,0,0.08); border:0.5px solid #e2e8f0; margin-bottom:10px; overflow:hidden; }
    .wt-mc-hd { background:#f7f9fc; border-bottom:2px solid #e2e8f0; padding:9px 14px; font-size:0.88rem; font-weight:700; color:#2d3748; }
    .wt-mc-row { display:flex; align-items:center; padding:8px 14px; border-bottom:0.5px solid #f0f4f8; gap:8px; }
    .wt-mc-row:last-child { border-bottom:none; }
    .wt-mc-row.wt-mc-total { background:#f7f9fc; border-top:2px solid #e2e8f0; }
    .wt-mc-prop { font-size:0.78rem; font-weight:600; color:#4a5568; min-width:100px; flex-shrink:0; white-space:nowrap; }
    .wt-mc-prop-total { font-weight:700; color:#2d3748; }
    .wt-mc-vals { display:flex; align-items:center; gap:8px; flex-wrap:wrap; flex:1; }
    .wt-mc-act { font-size:0.95rem; font-weight:500; color:#1a202c; }
    .wt-mc-act-zero { font-size:0.95rem; color:#cbd5e0; }
    .wt-mc-exp { font-size:0.72rem; color:#a0aec0; }

    @media (max-width: 768px) {
      header { flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px 16px; }
      .header-title-wrap h1 { font-size: 1rem; }
      .header-right { width: 100%; justify-content: space-between; flex-wrap: wrap; }
      .btn { padding: 6px 12px; font-size: 0.82rem; }
      .container { padding: 12px 10px; }
      .card-header { padding: 12px 14px; }
      .card-body { padding: 14px; }

      /* 메인 탭 */
      .main-tabs { padding: 0 10px; overflow-x: auto; flex-wrap: nowrap; }
      .main-tab { padding: 8px 12px; font-size: 0.8rem; white-space: nowrap; }
      .flow-row { flex-direction: column; align-items: center; }
      .flow-box { min-width: 180px; }

      /* 체크아웃 탭: 가로 스크롤 */
      .checkout-tabs { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding: 5px 10px 0; }
      .checkout-tab { white-space: nowrap; }

      /* 체크아웃: 데스크톱 테이블 숨김, 모바일 카드 표시 */
      .checkout-table-desktop { display: none !important; }
      .checkout-cards-mobile { display: block; }

      /* 체크아웃: 접기 버튼 표시 (기본 펼침) */
      .checkout-toggle-btn-wrap { display: block; padding: 8px 14px 0; }

      /* 주간 현황: 접기 버튼 표시 */
      .weekly-toggle-btn-wrap { display: block; margin-bottom: 8px; }
      #weekly-content { display: none; }
      #weekly-content.open { display: block; }
      /* 주간 체크아웃: 모바일 카드로 전환 */
      .wt-desktop { display: none !important; }
      .wt-mobile  { display: block !important; }
      .wt-mc-vals { gap: 6px; }

      /* 배정: 모바일 탭 표시, 그리드 1열 */
      .mobile-emp-tabs { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: 6px; padding: 8px 0; -webkit-overflow-scrolling: touch; }
      .assignment-grid { grid-template-columns: 1fr !important; }
      .emp-card.mobile-hidden { display: none; }
      .emp-card.emp-new { display: none; }
      .unassigned-section.mobile-hidden { display: none; }

      th, td { padding: 8px 10px; font-size: 0.8rem; }

      /* ── 공실 조회 탭 ── */
      /* 요금 설정: 전역 설정 2열 */
      #vac-global-settings { grid-template-columns: 1fr 1fr !important; }
      #vac-global-settings label { font-size: 0.82rem; }
      #vac-global-settings input { font-size: 0.9rem !important; padding: 8px 8px !important; }

      /* 요금 설정: 방타입 테이블 입력 */
      #vac-rates-tbody input[type="number"] {
        min-height: 38px; font-size: 0.85rem !important;
        padding: 6px 4px !important; min-width: 70px;
      }
      /* 요금 설정: 비교 열 모바일 숨김 */
      .vac-cmp-col { display: none; }

      /* 특별 요금 추가 폼: 세로 스택 */
      #vac-specials-add { flex-direction: column !important; align-items: stretch !important; gap: 10px !important; }
      #vac-specials-add label { font-size: 0.85rem; }
      #vac-specials-add input { width: 100% !important; box-sizing: border-box !important; padding: 9px 8px !important; font-size: 0.9rem !important; }
      #vac-specials-add .btn { width: 100% !important; padding: 11px !important; font-size: 0.88rem !important; margin-top: 2px; }

      /* 공실 조회: 달력 */
      #vac-search-btn { width: 100% !important; padding: 12px !important; font-size: 0.92rem !important; }
      #vac-cal-wrap { max-width: 100% !important; }

      /* 공실 결과: 카드 풀 width 세로 배치 */
      .vac-room-card { width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; padding: 14px 16px !important; }
      #vac-results > div > div[style*="display:flex"] { flex-direction: column !important; }

      /* 요금 계산 폼: 단일 열 */
      #vac-calc-form { grid-template-columns: 1fr !important; }
      #vac-calc-form select,
      #vac-calc-form input[type="date"],
      #vac-calc-form input[type="text"],
      #vac-calc-form input[type="number"] { font-size: 0.92rem !important; padding: 10px 9px !important; }
      #vac-calc-card > .card-body > .btn { width: 100% !important; padding: 12px !important; font-size: 0.92rem !important; }

      /* 요금 계산 결과 + 안내 메시지 */
      #vac-calc-result .table-wrap { font-size: 0.78rem; }
      #vac-calc-result textarea { font-size: 0.85rem !important; }
      #vac-calc-result .btn { width: 100% !important; padding: 11px !important; }

      /* 호텔러너 예약배정 탭: 카드 1열 */
      .hr-booking-grid { grid-template-columns: 1fr !important; }
      .hr-rule-add-form { flex-direction: column !important; }
      .hr-rule-add-form select,
      .hr-rule-add-form input { width: 100% !important; }
    }

    /* ── 호텔러너 예약배정 탭 ── */
    .hr-section-title {
      font-size: 0.95rem; font-weight: 700; color: #1a202c;
      margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid #e2e8f0;
      display: flex; align-items: center; justify-content: space-between;
    }
    .hr-toggle-row {
      display: flex; gap: 24px; flex-wrap: wrap; margin-bottom: 16px;
    }
    .hr-toggle-item {
      display: flex; align-items: center; gap: 10px; font-size: 0.88rem; color: #2d3748;
    }
    /* toggle switch */
    .hr-switch { position: relative; display: inline-block; width: 42px; height: 22px; }
    .hr-switch input { opacity: 0; width: 0; height: 0; }
    .hr-slider {
      position: absolute; cursor: pointer; inset: 0;
      background: #cbd5e0; border-radius: 22px; transition: 0.2s;
    }
    .hr-slider:before {
      content: ''; position: absolute; height: 16px; width: 16px;
      left: 3px; bottom: 3px; background: #fff; border-radius: 50%; transition: 0.2s;
    }
    .hr-switch input:checked + .hr-slider { background: #4f8ef7; }
    .hr-switch input:checked + .hr-slider:before { transform: translateX(20px); }

    /* 방별 예외 룰 */
    .hr-rule-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
    .hr-rule-item {
      display: flex; align-items: center; gap: 10px; padding: 9px 13px;
      background: #f7f9fc; border: 1px solid #e2e8f0; border-radius: 7px; font-size: 0.85rem;
    }
    .hr-rule-item .hr-rule-type {
      padding: 2px 8px; border-radius: 10px; font-size: 0.75rem; font-weight: 700; white-space: nowrap;
    }
    .hr-rule-type-exclude      { background: #fed7d7; color: #c53030; }
    .hr-rule-type-deprioritize { background: #fefcbf; color: #744210; }
    .hr-rule-item .hr-rule-room  { font-weight: 700; color: #1a202c; min-width: 60px; }
    .hr-rule-item .hr-rule-reason { color: #4a5568; flex: 1; }
    .hr-rule-delete { background: none; border: none; color: #a0aec0; cursor: pointer; font-size: 1rem; padding: 2px 4px; }
    .hr-rule-delete:hover { color: #e53e3e; }

    .hr-rule-add-form {
      display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 4px;
    }
    .hr-rule-add-form select,
    .hr-rule-add-form input[type="number"],
    .hr-rule-add-form input[type="text"] {
      border: 1px solid #e2e8f0; border-radius: 6px; padding: 7px 10px;
      font-size: 0.84rem; font-family: inherit; background: #fff; color: #1a202c;
    }
    .hr-rule-add-form select:focus,
    .hr-rule-add-form input:focus { outline: none; border-color: #4f8ef7; }

    /* 예약 카드 그리드 */
    .hr-booking-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
      gap: 16px;
    }
    .hr-booking-card {
      background: #fff; border: 1px solid #e2e8f0; border-radius: 10px;
      padding: 16px; box-shadow: 0 1px 4px rgba(0,0,0,0.06);
      transition: opacity 0.2s;
    }
    .hr-booking-card.hr-done { opacity: 0.4; }
    .hr-booking-card-header {
      display: flex; align-items: flex-start; justify-content: space-between;
      margin-bottom: 10px;
    }
    .hr-booking-prop { font-size: 0.75rem; color: #718096; margin-bottom: 2px; }
    .hr-booking-guest { font-size: 1rem; font-weight: 700; color: #1a202c; }
    .hr-booking-meta {
      display: flex; flex-wrap: wrap; gap: 6px; font-size: 0.8rem;
      color: #4a5568; margin-bottom: 10px;
    }
    .hr-booking-meta span { background: #f0f4f8; padding: 2px 8px; border-radius: 10px; }
    .hr-booking-recommend {
      display: flex; align-items: center; gap: 8px;
      background: #ebf8ff; border: 1px solid #bee3f8; border-radius: 7px;
      padding: 8px 12px; margin-bottom: 10px;
    }
    .hr-booking-recommend .hr-rec-room {
      font-size: 1.1rem; font-weight: 700; color: #2b6cb0;
    }
    .hr-booking-recommend .hr-rec-floor {
      font-size: 0.78rem; color: #4299e1;
    }
    .hr-consec-badge {
      display: inline-block; background: #c6f6d5; color: #276749;
      font-size: 0.72rem; font-weight: 700; padding: 2px 8px; border-radius: 10px;
    }
    .hr-no-rec {
      background: #fff5f5; border: 1px solid #fed7d7; border-radius: 7px;
      padding: 8px 12px; margin-bottom: 10px; font-size: 0.82rem; color: #c53030;
    }
    .hr-booking-actions {
      display: flex; gap: 8px; align-items: center;
    }
    .hr-room-input {
      flex: 1; border: 1px solid #e2e8f0; border-radius: 6px;
      padding: 7px 10px; font-size: 0.85rem; font-family: inherit;
    }
    .hr-room-input:focus { outline: none; border-color: #4f8ef7; }
    .hr-done-btn {
      background: #48bb78; color: #fff; border: none; border-radius: 6px;
      padding: 7px 13px; font-size: 0.82rem; cursor: pointer; font-family: inherit;
      white-space: nowrap; font-weight: 600; transition: background 0.15s;
    }
    .hr-done-btn:hover { background: #38a169; }
    .hr-done-btn.active { background: #a0aec0; }
    .hr-event-badge {
      font-size: 0.72rem; font-weight: 700; padding: 2px 8px; border-radius: 10px;
      white-space: nowrap;
    }
    .hr-badge-book   { background: #c6f6d5; color: #276749; }
    .hr-badge-cancel { background: #fed7d7; color: #c53030; }
    .hr-badge-modify { background: #fefcbf; color: #744210; }
    .hr-badge-other  { background: #e2e8f0; color: #4a5568; }
    .hr-empty { text-align: center; color: #a0aec0; padding: 40px 0; font-size: 0.9rem; }

    /* ── 장기 게스트 탭 ── */
    .lt-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
      gap: 16px;
    }
    .lt-card {
      background: #fff; border: 1px solid #e2e8f0; border-radius: 10px;
      padding: 16px; box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    }
    .lt-card.lt-checkout-flag { border-left: 4px solid #e53e3e; }
    .lt-card-header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 10px; }
    .lt-prop   { font-size: 0.75rem; color: #718096; margin-bottom: 2px; }
    .lt-name   { font-size: 1rem; font-weight: 700; color: #1a202c; }
    .lt-badges { display: flex; gap: 6px; flex-wrap: wrap; }
    .lt-badge-checkout {
      background: #fed7d7; color: #c53030;
      font-size: 0.72rem; font-weight: 700; padding: 2px 8px; border-radius: 10px; white-space: nowrap;
    }
    .lt-badge-room {
      background: #e9d8fd; color: #553c9a;
      font-size: 0.72rem; font-weight: 700; padding: 2px 8px; border-radius: 10px; white-space: nowrap;
    }
    .lt-badge-bedding {
      background: #e6fffa; color: #2c7a7b;
      font-size: 0.72rem; font-weight: 700; padding: 2px 8px; border-radius: 10px; white-space: nowrap;
    }
    .lt-badge-channel {
      background: #ebf8ff; color: #2b6cb0;
      font-size: 0.72rem; font-weight: 700; padding: 2px 8px; border-radius: 10px; white-space: nowrap;
    }
    .lt-badge-nochannel {
      background: #fffbeb; color: #b7791f;
      font-size: 0.72rem; font-weight: 700; padding: 2px 8px; border-radius: 10px; white-space: nowrap;
    }
    .lt-filter-row {
      display: flex; align-items: center; gap: 10px; margin-bottom: 14px; flex-wrap: wrap;
    }
    .lt-filter-select {
      border: 1px solid #e2e8f0; border-radius: 6px; padding: 6px 10px;
      font-size: 0.84rem; font-family: inherit; background: #fff; color: #1a202c;
    }
    .lt-filter-select:focus { outline: none; border-color: #4f8ef7; }
    .lt-meta {
      display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px;
      font-size: 0.82rem; color: #4a5568; margin-bottom: 12px;
    }
    .lt-meta-label { font-size: 0.72rem; color: #a0aec0; display: block; margin-bottom: 1px; }
    .lt-meta-val   { font-weight: 600; color: #2d3748; }
    .lt-actions    { display: flex; flex-direction: column; gap: 8px; }
    .lt-btn {
      width: 100%; min-height: 44px; border: none; border-radius: 7px;
      font-size: 0.85rem; font-weight: 600; cursor: pointer; font-family: inherit;
      transition: background 0.15s; padding: 10px 14px;
    }
    .lt-btn-payment  { background: #4f8ef7; color: #fff; }
    .lt-btn-payment:hover  { background: #3b7de8; }
    .lt-btn-checkout { background: #e53e3e; color: #fff; }
    .lt-btn-checkout:hover { background: #c53030; }
    .lt-btn-checkin  { background: #48bb78; color: #fff; }
    .lt-btn-checkin:hover  { background: #38a169; }
    .lt-btn:disabled { background: #e2e8f0; color: #a0aec0; cursor: not-allowed; }
    .lt-send-status  { font-size: 0.78rem; text-align: center; min-height: 18px; color: #718096; margin-top: 4px; }
    @media (max-width: 768px) {
      .lt-grid { grid-template-columns: 1fr; }
    }

    /* 계약서 발송 이력 — 데스크톱은 테이블, 모바일은 카드 */
    .ct-hist-cards { display: none; }
    @media (max-width: 768px) {
      .ct-hist-table-wrap { display: none; }
      .ct-hist-cards { display: block; }
    }

    /* ── 장기 게스트 맵 뷰 ── */
    .lt-view-toggle { display:flex; gap:8px; margin-bottom:14px; }
    .lt-view-btn { padding:6px 15px; border:1px solid #e2e8f0; border-radius:6px; background:#f7fafc; font-size:0.82rem; font-weight:600; cursor:pointer; font-family:inherit; color:#4a5568; transition:all 0.12s; }
    .lt-view-btn.active { background:#A8724A; color:#fff; border-color:#A8724A; }
    .lt-prop-tabs { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; }
    .lt-prop-tab { padding:7px 14px; border:1px solid #e2e8f0; border-radius:8px; background:#f7fafc; font-size:0.81rem; font-weight:600; cursor:pointer; font-family:inherit; color:#4a5568; transition:all 0.12s; white-space:nowrap; }
    .lt-prop-tab.active { background:#2d3748; color:#fff; border-color:#2d3748; }
    .lt-legend { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:14px; align-items:center; padding:8px 12px; background:#f7fafc; border-radius:8px; border:1px solid #f0f4f8; }
    .lt-legend-item { display:flex; align-items:center; gap:5px; font-size:0.74rem; color:#4a5568; }
    .lt-legend-dot { width:14px; height:14px; border-radius:3px; border:1px solid #e2e8f0; flex-shrink:0; }
    /* 카드 레이아웃 */
    .lt-floor-section { margin-bottom:22px; }
    .lt-floor-hdr { display:inline-block; background:#F5EDE6; color:#A8724A; font-weight:700; font-size:0.8rem; padding:4px 10px; border-radius:6px; margin-bottom:8px; letter-spacing:0.03em; }
    .lt-floor-rooms { display:flex; flex-wrap:wrap; gap:8px; }
    /* 카드 */
    .lt-card { width:190px; border-radius:14px; border:1px solid #e2e8f0; overflow:hidden; cursor:pointer; transition:box-shadow 0.12s,transform 0.1s; display:flex; flex-direction:column; position:relative; }
    .lt-card:hover { box-shadow:0 3px 12px rgba(0,0,0,0.11); transform:translateY(-1px); }
    .lt-card.s-vacant        { background:#fff; border-color:#e2e8f0; }
    .lt-card.s-excluded      { background:#F8F6F3; border-color:#E8E0D8; opacity:0.65; }
    .lt-card.s-excluded .lt-card-hdr { background:#EFEBE5; }
    .lt-card.s-occupied      { background:#fff; border-color:#e2e8f0; }
    /* 단일 상태 카드 색상 */
    .lt-card.s-checkout-soon    { background:#FFF8E1; border:1.5px solid #EF9F27; } /* 미사용 — 하위호환 */
    .lt-card.s-checkout-confirm { background:#FAF5FF; border:1.5px solid #9333EA; }
    .lt-card.s-checkin-soon     { background:#ECFDF5; border:1.5px solid #10B981; }
    .lt-card.s-checkin-soon-checkout { background:#ECFDF5; border:1.5px solid #10B981; }
    .lt-card.no-contact         { background:#FFFBEB !important; border-color:#F59E0B !important; border-width:2px !important; }
    .lt-card.s-airbnb           { background:#EFF6FF; border-color:#3B82F6; }
    .lt-card.s-shortterm        { background:#EFF6FF; border-color:#3B82F6; }
    .lt-card.s-shortterm-checkin { background:#EFF6FF; border-color:#3B82F6; }
    .lt-card.s-short-term       { background:#EFF6FF; border-color:#3B82F6; }
    /* 복수 상태 줄무늬 조합 (14px씩) */
    .lt-card.s-checkout-confirm.s-unpaid       { background:repeating-linear-gradient(135deg,#FAF5FF 0,#FAF5FF 14px,#FEF2F2 14px,#FEF2F2 28px); border-color:#9333EA; border-width:1.5px; }
    /* 결합 케이스 — 상하 분할 (위: 현재, 아래: 다음 이벤트) */
    .lt-card.dual-state { background:#fff !important; }
    .lt-card.dual-state .lt-dual-bot { border-top:1.5px solid; padding:5px 9px 6px; min-height:42px; box-sizing:border-box; }
    .lt-card.dual-state.dual-co-short { border-color:#7F77DD; }
    .lt-card.dual-state.dual-co-short .lt-card-hdr { background:#EBD7F6; }
    .lt-card.dual-state.dual-co-short .lt-card-name-row { background:#FAF5FF; }
    .lt-card.dual-state.dual-co-short .lt-card-billing-row { background:#FAF5FF; }
    .lt-card.dual-state.dual-co-short .lt-card-dates-row { background:#FAF5FF; }
    .lt-card.dual-state.dual-co-short .lt-card-badges-row { background:#FAF5FF; }
    .lt-card.dual-state.dual-co-short .lt-dual-bot { background:#EFF6FF; border-top-color:#3B82F6; color:#1E3A8A; }
    .lt-card.dual-state.dual-co-in { border-color:#7F77DD; }
    .lt-card.dual-state.dual-co-in .lt-card-hdr { background:#EBD7F6; }
    .lt-card.dual-state.dual-co-in .lt-card-name-row { background:#FAF5FF; }
    .lt-card.dual-state.dual-co-in .lt-card-billing-row { background:#FAF5FF; }
    .lt-card.dual-state.dual-co-in .lt-card-dates-row { background:#FAF5FF; }
    .lt-card.dual-state.dual-co-in .lt-card-badges-row { background:#FAF5FF; }
    .lt-card.dual-state.dual-co-in .lt-dual-bot { background:#ECFDF5; border-top-color:#10B981; color:#065F46; }
    .lt-card.dual-state.dual-short-in { border-color:#3B82F6; }
    .lt-card.dual-state.dual-short-in .lt-card-hdr { background:#C9DEF6; }
    .lt-card.dual-state.dual-short-in .lt-card-name-row { background:#EFF6FF; }
    .lt-card.dual-state.dual-short-in .lt-card-billing-row { background:#EFF6FF; }
    .lt-card.dual-state.dual-short-in .lt-card-dates-row { background:#EFF6FF; }
    .lt-card.dual-state.dual-short-in .lt-card-badges-row { background:#EFF6FF; }
    .lt-card.dual-state.dual-short-in .lt-dual-bot { background:#ECFDF5; border-top-color:#10B981; color:#065F46; }
    .lt-dual-bot-tag { font-size:9px; font-weight:700; letter-spacing:0.3px; margin-bottom:2px; }
    .lt-dual-bot-text { font-size:10px; line-height:1.4; }
    .lt-card.s-checkin-soon.no-contact         { background:repeating-linear-gradient(135deg,#ECFDF5 0,#ECFDF5 14px,#FFFBEB 14px,#FFFBEB 28px) !important; border-color:#10B981 !important; border-width:1.5px !important; }
    .lt-card.s-upcoming-longterm { background-image:repeating-linear-gradient(135deg,rgba(56,161,105,0.1) 0,rgba(56,161,105,0.1) 4px,transparent 4px,transparent 12px); }
    /* 월세일 배지 */
    .lt-rb-payday { font-size:10px; font-weight:700; padding:2px 7px; border-radius:4px; white-space:nowrap; }
    .lt-rb-payday.paid     { background:#D1E7D7; color:#2D6A4F; }
    .lt-rb-payday.unpaid   { background:#FED7D7; color:#C53030; }
    /* 퇴실 임박(15일 이내) 알림 — 카드 좌상단 작은 빨간 느낌표 */
    .lt-card-checkout-warn { position:absolute; top:6px; left:6px; width:18px; height:18px; background:#DC2626; color:#fff; border-radius:50%; font-size:11px; font-weight:800; display:flex; align-items:center; justify-content:center; box-shadow:0 0 0 2px #fff,0 1px 3px rgba(0,0,0,0.25); z-index:5; cursor:help; line-height:1; }
    /* 탭/토글 알림 배지 (빨간 원 + 카운트) */
    .lt-tab-alert-badge { display:inline-flex; align-items:center; justify-content:center; background:#DC2626; color:#fff; font-size:0.65rem; font-weight:700; min-width:16px; height:16px; padding:0 5px; border-radius:9px; margin-left:5px; box-shadow:0 0 0 2px #FECACA; vertical-align:middle; box-sizing:border-box; }
    /* 퇴실 확정 박스 헤더 알림 칩 */
    .summary-alert-chip { display:inline-flex; align-items:center; gap:3px; background:#DC2626; color:#fff; font-size:0.65rem; font-weight:700; padding:2px 7px; border-radius:9px; margin-left:6px; }
    .lt-rb-payday.critical { background:#991B1B; color:#fff; }
    .lt-rb-payday.neutral  { background:#F1EDE7; color:#8B7355; }
    .lt-card-airbnb-name { font-size:11px; font-weight:500; color:#1D4ED8; }
    .lt-card-airbnb-sub  { font-size:10px; color:#3B82F6; font-style:italic; }
    /* 카드 헤더 */
    .lt-card-hdr { background:#F5EDE6; border-radius:14px 14px 0 0; padding:7px 10px; display:flex; justify-content:space-between; align-items:center; gap:4px; flex-shrink:0; min-height:32px; }
    .lt-card-num  { font-size:14px; font-weight:700; color:#2C2420; white-space:nowrap; }
    .lt-card-type { font-size:9px; color:#8B7B72; text-align:right; line-height:1.3; }
    /* 카드 바디 — 각 행 고정 높이 */
    .lt-card-body { display:flex; flex-direction:column; }
    .lt-card-name-row    { display:flex; justify-content:space-between; align-items:center; min-height:26px; height:26px; gap:4px; padding:0 9px; border-bottom:1px solid #f0f4f8; overflow:hidden; }
    .lt-card-name        { font-size:11px; font-weight:700; color:#2d3748; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex:1; }
    .lt-card-vacant-name { font-size:11px; color:#cbd5e0; }
    .lt-card-billing-row { display:flex; justify-content:space-between; align-items:center; min-height:26px; height:26px; gap:4px; padding:0 9px; border-bottom:1px solid #f0f4f8; }
    .lt-card-billing     { font-size:10px; color:#4a5568; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex:1; }
    .lt-card-badges-row  { display:flex; flex-wrap:wrap; gap:3px; min-height:26px; padding:4px 9px; border-bottom:1px solid #f0f4f8; align-items:flex-start; align-content:flex-start; }
    .lt-card-dates-row { display:flex; justify-content:space-between; align-items:center; height:22px; padding:0 9px; border-bottom:1px solid #f0f4f8; font-size:9.5px; }
    .lt-card-date-label { color:#a0aec0; margin-right:3px; }
    .lt-card-date-val { color:#4a5568; font-weight:500; }
    .lt-card-date-val.checkin { color:#1D9E75; font-weight:700; }
    .lt-card-date-val.checkout { color:#6B21A8; font-weight:700; }
    .lt-rb-agent-preset { background:#F3E8FF; color:#6B21A8; }
    .lt-rb-agent-direct { background:#F1EDE7; color:#8B7355; }
    /* 메모 행 */
    .lt-card-memo-row { padding:5px 9px 6px; min-height:68px; flex:1; cursor:text; }
    .lt-card-memo-row:hover { background:rgba(168,114,74,0.04); }
    .lt-card-memo-label { font-size:8px; color:#a0aec0; display:block; margin-bottom:3px; }
    .lt-card-memo-text { font-size:10px; color:#4a5568; line-height:1.5; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; min-height:54px; }
    /* dual-state일 때 메모 영역 줄여서 하단 분할 영역 자리 만들기 */
    .lt-card.dual-state .lt-card-memo-row { min-height:40px; padding:5px 9px 4px; }
    .lt-card.dual-state .lt-card-memo-text { -webkit-line-clamp:2; min-height:26px; }
    .lt-card-memo-ta   { width:100%; font-size:10px; border:1px solid #A8724A; border-radius:4px; padding:4px; font-family:inherit; resize:vertical; min-height:54px; box-sizing:border-box; outline:none; }
    .lt-card-memo-save { width:100%; margin-top:3px; padding:3px 0; background:#A8724A; color:#fff; border:none; border-radius:4px; font-size:9px; font-weight:700; cursor:pointer; font-family:inherit; }
    /* 카드 색상 범례 */
    .color-legend { font-size:0.72rem; color:#4a5568; padding:6px 10px; background:#FAFAF9; border:1px solid #E8E0D8; border-radius:6px; margin:10px 0; }
    /* 숙소 정보 보고서 */
    .prop-report { background:#FAFAF9; border:1px solid #E8E0D8; border-radius:10px; padding:14px 18px; margin-bottom:12px; }
    .prop-hdr { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:12px; }
    .prop-title { font-size:0.92rem; font-weight:700; color:#2C2420; }
    .prop-sub { font-size:0.72rem; color:#8B7355; }
    .bar-block { margin-bottom:8px; }
    .bar-block:last-of-type { margin-bottom:0; }
    .bar-label { font-size:0.72rem; color:#5F5E5A; margin-bottom:4px; display:flex; justify-content:space-between; align-items:center; }
    .bar-row { display:flex; height:22px; border-radius:5px; overflow:hidden; border:0.5px solid #E8E0D8; }
    .bar-row .seg { display:flex; align-items:center; justify-content:center; min-width:0; font-size:0.66rem; font-weight:600; color:#fff; overflow:hidden; white-space:nowrap; }
    .bar-row .seg-lt { background:#1D9E75; }
    .bar-row .seg-st { background:#378ADD; }
    .bar-row .seg-vc { background:#D3D1C7; color:#444441; }
    .flow-pills { display:flex; gap:5px; }
    .flow-pill { display:inline-flex; align-items:center; gap:3px; padding:1px 7px; border-radius:10px; font-size:0.66rem; font-weight:600; }
    .flow-pill.flow-in  { background:#EAF3DE; color:#27500A; }
    .flow-pill.flow-out { background:#EEEDFE; color:#3C3489; }
    .footer-meta { display:flex; flex-wrap:wrap; gap:0 16px; margin-top:10px; padding-top:8px; border-top:1px dashed #E8E0D8; font-size:0.74rem; color:#5F5E5A; }
    .footer-meta b { color:#2C2420; font-weight:700; }
    .footer-meta .hl { color:#A8724A; }
    .meta-grid-b { margin-top:10px; padding-top:10px; border-top:1px dashed #E8E0D8; display:grid; grid-template-columns:repeat(6,1fr); gap:0; }
    .meta-cell-b { display:flex; flex-direction:column; align-items:center; padding:0 4px; border-right:1px solid #EFEBE5; gap:3px; }
    .meta-cell-b:last-child { border-right:0; }
    .meta-cell-b:nth-child(5) { border-right:2px solid #DDD5C7; }  /* 운영/매출 그룹 구분 */
    .meta-cell-b .label-b { font-size:0.66rem; color:#8B7355; letter-spacing:0.02em; }
    .meta-cell-b .val-b { font-size:0.95rem; font-weight:700; color:#2C2420; line-height:1.1; text-align:center; }
    .meta-cell-b .val-b.hl { color:#A8724A; }
    .meta-cell-b .val-b.muted { color:#A0957F; font-weight:400; }
    .meta-cell-b .val-b .frac-sep { color:#B4B2A9; margin:0 2px; font-weight:400; }
    .meta-cell-b .sub-b { font-size:0.6rem; color:#A0957F; }
    @media (max-width:900px) { .meta-grid-b { grid-template-columns:repeat(3,1fr); gap:8px 0; } .meta-cell-b:nth-child(5) { border-right:1px solid #EFEBE5; } .meta-cell-b:nth-child(3) { border-right:0; } }
    @media (max-width:600px) { .meta-grid-b { grid-template-columns:repeat(2,1fr); } .meta-cell-b:nth-child(2n) { border-right:0; } }
    /* 전체 보기 숙소 섹션 구분 */
    .lt-prop-section-title { font-size:0.82rem; font-weight:700; color:#A8724A; padding:6px 10px; background:#F5EDE6; border-radius:6px; margin-bottom:10px; margin-top:4px; }
    /* 카카오 버튼 */
    .lt-kakao-btn { display:flex; align-items:center; justify-content:center; gap:3px; margin:4px 9px 6px; padding:4px 0; background:#FEE500; border:none; border-radius:6px; font-size:10px; font-weight:700; color:#3C1E1E; cursor:pointer; font-family:inherit; min-height:28px; width:calc(100% - 18px); }
    .lt-kakao-btn:disabled { background:#e2e8f0; color:#a0aec0; cursor:not-allowed; }
    .lt-kakao-btn .lt-kakao-dot { width:7px; height:7px; background:#E85555; border-radius:50%; flex-shrink:0; }
    /* 카드 읽지않은메시지 표시 */
    .lt-card-hdr .lt-unread-dot { width:8px; height:8px; background:#E85555; border-radius:50%; flex-shrink:0; display:inline-block; margin-left:4px; }
    .lt-tab-unread-badge { display:inline-block; background:#E85555; color:#fff; font-size:0.66rem; font-weight:700; padding:1px 6px; border-radius:9px; margin-left:5px; min-width:14px; text-align:center; line-height:1.4; vertical-align:middle; }
    /* 카카오 채팅 모달 */
    .lt-chat-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:9000; display:flex; align-items:center; justify-content:center; }
    .lt-chat-modal { background:#fff; border-radius:16px; width:600px; max-width:96vw; max-height:90vh; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 8px 40px rgba(0,0,0,0.18); }
    @media(max-width:640px) { .lt-chat-modal { width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; border-radius:0; } }
    .lt-chat-hdr { background:#FEE500; padding:14px 18px; display:flex; align-items:center; gap:10px; flex-shrink:0; }
    .lt-chat-hdr-title { font-weight:700; font-size:15px; color:#3C1E1E; flex:1; }
    .lt-chat-hdr-close { background:none; border:none; font-size:20px; cursor:pointer; color:#3C1E1E; min-width:44px; min-height:44px; display:flex; align-items:center; justify-content:center; }
    .lt-chat-msgs { flex:1; overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:10px; background:#F7F7F7; }
    .lt-chat-bubble { max-width:75%; padding:9px 13px; border-radius:14px; font-size:13px; line-height:1.5; word-break:break-word; }
    .lt-chat-bubble.guest { align-self:flex-start; background:#fff; border:1px solid #e2e8f0; border-radius:4px 14px 14px 14px; }
    .lt-chat-bubble.admin { align-self:flex-end; background:#FEE500; color:#3C1E1E; border-radius:14px 4px 14px 14px; }
    .lt-chat-time { font-size:10px; color:#a0aec0; margin-top:3px; }
    .lt-chat-time.guest { text-align:left; } .lt-chat-time.admin { text-align:right; }
    .lt-chat-input-row { display:flex; gap:8px; padding:12px; border-top:1px solid #e2e8f0; background:#fff; flex-shrink:0; }
    .lt-chat-input { flex:1; padding:10px 14px; border:1px solid #e2e8f0; border-radius:8px; font-size:14px; font-family:inherit; outline:none; resize:none; height:44px; max-height:100px; }
    .lt-chat-send-btn { background:#FEE500; border:none; border-radius:8px; padding:0 18px; font-weight:700; font-size:14px; color:#3C1E1E; cursor:pointer; min-height:44px; flex-shrink:0; }
    .lt-chat-clip-btn { background:none; border:none; font-size:20px; cursor:pointer; padding:0 6px; min-height:44px; flex-shrink:0; color:#718096; }
    .lt-chat-clip-btn:hover { color:#A8724A; }
    .lt-chat-img-preview { padding:8px 12px 0; display:flex; align-items:center; gap:8px; }
    .lt-chat-img-thumb { max-height:72px; max-width:160px; border-radius:6px; border:1px solid #e2e8f0; object-fit:cover; }
    .lt-chat-img-cancel { background:none; border:none; font-size:16px; cursor:pointer; color:#718096; padding:2px; line-height:1; }
    /* 새메시지 배지 */
    .lt-new-msg-badge { display:inline-block; background:#E85555; color:#fff; font-size:10px; font-weight:700; padding:1px 6px; border-radius:10px; margin-left:6px; vertical-align:middle; }
    /* 장기게스트 하위 탭 */
    .lt-sub-tab-bar { display:flex; gap:0; border-bottom:2px solid #e2e8f0; margin-bottom:16px; }
    .lt-sub-tab { padding:9px 20px; border:1px solid #e2e8f0; border-bottom:none; background:#f7fafc; color:#4a5568; font-size:0.85rem; font-weight:600; cursor:pointer; border-radius:7px 7px 0 0; margin-right:4px; font-family:inherit; }
    .lt-sub-tab.active { background:#fff; color:#2C2420; font-weight:700; border-bottom:2px solid #fff; margin-bottom:-2px; }
    /* 카카오 CS 패널 */
    .lt-cs-wrap { display:flex; gap:0; height:600px; border:1px solid #e2e8f0; border-radius:10px; overflow:hidden; }
    .lt-cs-list-col { width:280px; flex-shrink:0; border-right:1px solid #e2e8f0; display:flex; flex-direction:column; background:#f7fafc; }
    .lt-cs-filter-bar { display:flex; gap:4px; flex-wrap:wrap; padding:10px 10px 6px; border-bottom:1px solid #e2e8f0; }
    .lt-cs-filter-btn { padding:4px 11px; border:1px solid #e2e8f0; border-radius:6px; background:#fff; font-size:0.76rem; font-weight:600; cursor:pointer; font-family:inherit; color:#4a5568; }
    .lt-cs-filter-btn.active { background:#A8724A; color:#fff; border-color:#A8724A; }
    .lt-cs-room-list { flex:1; overflow-y:auto; }
    .lt-cs-room-card { padding:12px 14px; border-bottom:1px solid #e2e8f0; cursor:pointer; background:#fff; transition:background 0.1s; }
    .lt-cs-room-card:hover { background:#faf7f4; }
    .lt-cs-room-card.active { background:#FFF8F4; border-left:3px solid #A8724A; }
    .lt-cs-room-card.unread { border-left:3px solid #E85555; background:#fff5f5; }
    .lt-cs-room-name { font-size:0.86rem; font-weight:700; color:#2d3748; display:flex; align-items:center; gap:6px; }
    .lt-cs-room-preview { font-size:0.76rem; color:#718096; margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:220px; }
    .lt-cs-room-time { font-size:0.7rem; color:#a0aec0; margin-top:2px; }
    .lt-cs-unread-dot { display:inline-block; background:#E85555; color:#fff; font-size:9px; font-weight:700; padding:1px 5px; border-radius:8px; margin-left:4px; }
    .lt-cs-panel { flex:1; display:flex; flex-direction:column; min-width:0; }
    .lt-cs-panel-empty { flex:1; display:flex; align-items:center; justify-content:center; color:#a0aec0; font-size:0.9rem; }
    @media(max-width:640px) { .lt-cs-wrap { flex-direction:column; height:auto; } .lt-cs-list-col { width:100%; border-right:none; border-bottom:1px solid #e2e8f0; max-height:240px; } }
    /* 배지 */
    .lt-rb { font-size:9px; font-weight:700; padding:1px 5px; border-radius:3px; white-space:nowrap; line-height:1.5; flex-shrink:0; }
    .lt-rb-channel  { background:#E6F1FB; color:#0C447C; }
    .lt-rb-nochannel{ background:#F1EFE8; color:#5F5E5A; }
    .lt-rb-phone    { background:#E6F1FB; color:#0C447C; }
    .lt-rb-nophone  { background:#F1EFE8; color:#5F5E5A; }
    .lt-rb-bedding  { background:#E1F5EE; color:#085041; }
    .lt-rb-checkout { background:#FAEEDA; color:#633806; }
    .lt-rb-checkin  { background:#EAF3DE; color:#27500A; }
    .lt-rb-paid     { background:#E1F5EE; color:#085041; }
    .lt-rb-unpaid   { background:#FCEBEB; color:#A32D2D; }
    .lt-rb-critical { background:#FEE2E2; color:#991B1B; font-weight:700; }
    .rh-status-box { display:flex; align-items:center; gap:10px; padding:8px 10px; background:#F7F4F0; border-radius:8px; margin-bottom:6px; font-size:0.82rem; }
    .rh-pay-form-row { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:10px; }
    .rh-period-hint { font-size:0.75rem; color:#718096; margin-bottom:8px; }
    .rh-history-list { display:flex; flex-direction:column; gap:4px; max-height:180px; overflow-y:auto; }
    .rh-history-item { display:flex; align-items:center; gap:6px; padding:5px 8px; background:#fff; border:1px solid #E8E0D8; border-radius:6px; font-size:0.8rem; }
    .rh-history-item.auto-source { background:#F0FAF4; }
    .rh-source-pill { font-size:0.7rem; padding:1px 6px; border-radius:10px; font-weight:600; flex-shrink:0; }
    .rh-source-manual { background:#EBF4FF; color:#2B6CB0; }
    .rh-source-auto { background:#E1F5EE; color:#085041; }
    .rh-source-migrated { background:#EDF2F7; color:#4A5568; }
    .rh-del-btn { margin-left:auto; background:none; border:none; cursor:pointer; color:#CBD5E0; font-size:0.85rem; padding:2px 4px; line-height:1; flex-shrink:0; }
    .rh-del-btn:hover { color:#A32D2D; }
    /* 커스텀 납부 폼 */
    .rh-custom-form { background:#F8F6F3; border:1px solid #E8E0D8; border-radius:8px; padding:10px 12px; margin-top:4px; }
    .rh-custom-form-row { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:6px; font-size:0.8rem; }
    .rh-custom-form-row label { color:#718096; font-size:0.75rem; white-space:nowrap; min-width:64px; }
    .rh-custom-dur { font-size:0.74rem; color:#718096; margin:4px 0 8px; }
    .rh-toggle-custom { background:none; border:none; color:#718096; font-size:0.74rem; cursor:pointer; padding:2px 0; text-decoration:underline; font-family:inherit; }
    .rh-toggle-custom:hover { color:#4a5568; }
    .rh-source-custom { background:#F3F4F6; color:#374151; }
    /* 납부 이력 접기/펼치기 */
    .rent-history-wrap { margin-top:6px; }
    .rent-history-toggle { display:flex; justify-content:space-between; align-items:center; cursor:pointer; user-select:none; padding:5px 0 4px; border-top:1px solid #F0E8DF; font-size:0.8rem; color:#8B7355; }
    .rent-history-toggle:hover { opacity:0.85; }
    .rent-history-toggle .arrow { display:inline-block; font-size:0.72rem; color:#A0AEC0; transition:transform 0.2s; }
    .rent-history-toggle.expanded .arrow { transform:rotate(180deg); }
    .lt-rb-agent    { background:#EEEDFE; color:#3C3489; }
    /* 모달 */
    .lt-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.45); z-index:9000; display:flex; align-items:center; justify-content:center; padding:16px; }
    .lt-modal { background:#fff; border-radius:14px; width:100%; max-width:400px; box-shadow:0 8px 32px rgba(0,0,0,0.18); overflow:hidden; }
    .lt-modal-hd { background:#2d3748; color:#fff; padding:14px 18px; display:flex; align-items:center; justify-content:space-between; }
    .lt-modal-title { font-size:1rem; font-weight:800; }
    .lt-modal-close { background:none; border:none; color:#fff; font-size:1.3rem; cursor:pointer; line-height:1; padding:0 2px; }
    .lt-modal-body { padding:18px; max-height:80vh; overflow-y:auto; }
    .lt-modal-row { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:7px 0; border-bottom:1px solid #f0f4f8; font-size:0.84rem; }
    .lt-modal-row:last-of-type { border-bottom:none; }
    .lt-modal-label { color:#718096; font-weight:600; white-space:nowrap; }
    .lt-modal-val { color:#2d3748; font-weight:700; text-align:right; word-break:break-all; }
    .lt-modal-pay-btn { width:100%; padding:10px; margin-top:10px; border-radius:8px; border:none; font-size:0.87rem; font-weight:700; cursor:pointer; font-family:inherit; transition:opacity 0.12s; }
    .lt-modal-pay-btn:hover { opacity:0.85; }
    .lt-modal-pay-btn.is-paid   { background:#C6F6D5; color:#276749; }
    .lt-modal-pay-btn.is-unpaid { background:#FED7D7; color:#C53030; }
    .lt-modal-actions { display:flex; gap:8px; margin-top:10px; }
    .lt-modal-action-btn { flex:1; min-height:36px; border-radius:7px; border:1px solid #e2e8f0; background:#f7fafc; font-size:0.8rem; font-weight:600; cursor:pointer; font-family:inherit; color:#4a5568; }
    .lt-modal-action-btn:hover { background:#edf2f7; }
    @media (max-width:600px) {
      .lt-card { width:calc(50% - 4px); }
    }

    /* ── lt_guests 섹션 ── */
    .ltg-summary-bar { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
    .ltg-summary-card { flex:1; min-width:160px; background:#f7fafc; border:1px solid #e2e8f0; border-radius:10px; padding:10px 14px; }
    .ltg-summary-label { font-size:0.75rem; font-weight:700; color:#718096; margin-bottom:6px; }
    .ltg-summary-row { font-size:0.8rem; color:#2d3748; line-height:1.7; }
    .ltg-summary-pct { font-size:0.85rem; font-weight:800; color:#A8724A; margin-top:4px; }
    .lt-card.s-unpaid { background:#FEF2F2; border-color:#DC2626; border-width:1.5px; }
    .ltg-confirm-btn { display:block; width:calc(100% - 18px); margin:4px 9px 6px; padding:6px 0; background:#2F855A; color:#fff; border:none; border-radius:6px; font-size:10px; font-weight:700; cursor:pointer; font-family:inherit; min-height:28px; }
    .ltg-confirm-btn:hover { background:#276749; }
    .ltg-confirm-btn:disabled { background:#C6F6D5; color:#276749; cursor:default; }
    /* ── 게스트 관리 탭 ── */
    .lt-manage-toolbar-row { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
    .lt-manage-toolbar-row + .lt-manage-toolbar-row { margin-top:7px; margin-bottom:14px; }
    .lt-manage-tab { padding:6px 14px; border:1.5px solid #E8E0D8; border-radius:8px; background:#fff; color:#4a5568; font-size:0.82rem; font-weight:700; cursor:pointer; font-family:inherit; }
    .lt-manage-tab.active { background:#2C2420; color:#F5EDE6; border-color:#2C2420; }
    .lt-tab-count { display:inline-block; background:rgba(255,255,255,0.25); border-radius:8px; padding:0 5px; font-size:0.72rem; font-weight:700; margin-left:4px; }
    .lt-manage-tab.active .lt-tab-count { background:rgba(255,255,255,0.2); }
    .lt-manage-chip { padding:4px 12px; border:1px solid #E8E0D8; border-radius:20px; background:#fff; color:#4a5568; font-size:0.76rem; font-weight:600; cursor:pointer; font-family:inherit; }
    .lt-manage-chip.active { background:#A8724A; color:#fff; border-color:#A8724A; }
    .lt-manage-add-btn { margin-left:auto; padding:6px 16px; background:#A8724A; color:#fff; border:none; border-radius:8px; font-size:0.83rem; font-weight:700; cursor:pointer; font-family:inherit; }
    .lt-manage-add-btn:hover { background:#8a5c38; }
    .lt-manage-tbl-wrap { overflow-x:auto; }
    .lt-manage-tbl { width:100%; border-collapse:collapse; font-size:0.78rem; }
    .lt-manage-tbl th { background:#A8724A; color:#FFF7F2; padding:8px 10px; font-weight:600; font-size:0.7rem; white-space:nowrap; cursor:pointer; user-select:none; border-bottom:2px solid #8D5D3A; }
    .lt-manage-tbl th:hover { background:#8D5D3A; }
    .lt-manage-tbl th.no-sort { cursor:default; }
    .lt-manage-tbl th.no-sort:hover { background:#A8724A; }
    .lt-manage-tbl thead tr th:first-child { border-top-left-radius:10px; }
    .lt-manage-tbl thead tr th:last-child { border-top-right-radius:10px; }
    .lt-manage-tbl td { padding:8px 10px; border-bottom:1px solid #F0EBE5; vertical-align:middle; white-space:nowrap; }
    .lt-manage-tbl td.guest-name { max-width:180px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .lt-manage-tbl td.num-cell, .lt-manage-tbl th.num-cell { padding-left:4px; padding-right:4px; min-width:38px; font-variant-numeric:tabular-nums; }
    .lt-manage-tbl th.num-cell { font-size:0.7rem; }
    .lt-manage-tbl tr.row-inactive td { opacity:0.55; }
    .lt-dot-on  { color:#38A169; font-size:1rem; }
    .lt-dot-off { color:#CBD5E0; font-size:1rem; }
    .lt-badge-soon { display:inline-block; background:#C6F6D5; color:#276749; font-size:0.65rem; font-weight:700; padding:1px 5px; border-radius:6px; margin-left:4px; }
    .lt-badge-confirmed { display:inline-block; background:#F3E8FF; color:#6B21A8; font-size:0.64rem; font-weight:700; padding:1px 6px; border-radius:4px; margin-left:4px; }
    .agent-pill        { display:inline-block; padding:2px 8px; border-radius:5px; font-size:0.7rem; font-weight:700; }
    .agent-pill-direct { background:#F1EDE7; color:#8B7355; }
    .agent-pill-prev   { background:#FFF4D6; color:#8A6D1D; }
    .agent-pill-other  { background:#EEEDFE; color:#5A45A3; }
    .agent-pill-none   { background:#F1EDE7; color:#A0957F; font-weight:500; }
    .pay-pill { display:inline-block; padding:2px 7px; border-radius:4px; font-size:0.68rem; font-weight:700; }
    .pay-pill-cash    { background:#E0F2FE; color:#075985; }
    .pay-pill-account { background:#F1EDE7; color:#8B7355; }
    .pay-pill-card    { background:#E9D5FF; color:#6B21A8; }
    .pay-pill-receipt { background:#FFF4D6; color:#8A6D1D; }
    /* 행 상태 왼쪽 바 */
    .lt-manage-tbl tbody tr td:first-child { border-left:4px solid transparent; padding-left:14px; }
    .lt-manage-tbl tbody tr.row-checkout td:first-child { border-left:4px solid #9333EA; }
    .lt-manage-tbl tbody tr.row-incoming td:first-child { border-left:4px solid #16A34A; }
    .lt-manage-tbl tbody tr.row-turnover td:first-child { border-left:4px solid transparent; background-image:linear-gradient(to bottom,#9333EA 50%,#16A34A 50%); background-size:4px 100%; background-repeat:no-repeat; background-position:left; }
    /* 상단 요약 박스 */
    .lt-summary-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:14px; }
    .lt-summary-box { border-radius:10px; padding:10px 12px; min-height:80px; }
    .summary-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
    .summary-title { font-size:0.75rem; font-weight:700; }
    .summary-count { font-size:0.68rem; font-weight:700; padding:1px 7px; border-radius:10px; }
    .summary-items { display:flex; flex-direction:column; gap:5px; }
    .summary-chips { display:grid; grid-template-columns:repeat(5,1fr); gap:3px; }
    .summary-empty { font-size:0.7rem; color:#A0957F; padding:4px 0; }
    .chip { display:flex; align-items:center; justify-content:center; gap:2px; padding:3px 5px; border-radius:4px; font-size:0.72rem; font-weight:700; cursor:pointer; min-width:0; line-height:1.3; }
    .chip .date-sub { font-size:0.62rem; opacity:0.8; font-weight:600; }
    .chip .chip-prop { font-size:0.55rem; opacity:0.7; }
    .chip .chip-extra { font-size:0.6rem; opacity:0.75; font-weight:600; }
    .box-incoming { background:#ECFDF5; border:1px solid #A7F3D0; }
    .box-incoming .summary-title { color:#065F46; }
    .box-incoming .summary-count { background:#A7F3D0; color:#065F46; }
    .box-incoming .chip { background:#fff; border:1px solid #10B981; color:#065F46; }
    .box-checkout { background:#FAF5FF; border:1px solid #E9D5FF; }
    .box-checkout .summary-title { color:#6B21A8; }
    .box-checkout .summary-count { background:#E9D5FF; color:#6B21A8; }
    .box-checkout .chip { background:#fff; border:1px solid #9333EA; color:#6B21A8; }
    .box-unpaid { background:#FEF2F2; border:1px solid #FECACA; }
    .box-unpaid .summary-title { color:#991B1B; }
    .box-unpaid .summary-count { background:#FECACA; color:#991B1B; }
    .box-unpaid .chip { background:#fff; border:1px solid #DC2626; color:#991B1B; }
    .box-unpaid .chip.critical { background:#991B1B; color:#fff; border-color:#991B1B; }
    .box-nocontact { background:#FFFBEB; border:1px solid #FDE68A; }
    .box-nocontact .summary-title { color:#92400E; }
    .box-nocontact .summary-count { background:#FDE68A; color:#92400E; }
    .box-nocontact .chip { background:#fff; border:1px solid #F59E0B; color:#92400E; }
    .box-short { background:#EFF6FF; border:1px solid #BFDBFE; }
    .box-short .summary-title { color:#1E40AF; }
    .box-short .summary-count { background:#BFDBFE; color:#1E40AF; }
    .box-short .chip { background:#fff; border:1px solid #3B82F6; color:#1E40AF; }
    .box-receipt { background:#ECFEFF; border:1px solid #A5F3FC; }
    .box-receipt .summary-title { color:#155E75; }
    .box-receipt .summary-count { background:#A5F3FC; color:#155E75; }
    .box-receipt .chip { background:#fff; border:1px solid #0891B2; color:#155E75; }
    .chip-method { font-size:0.52rem; background:rgba(0,0,0,0.07); padding:0 2px; border-radius:2px; }
    @media (max-width:900px) { .lt-summary-grid { grid-template-columns:repeat(2,1fr); } }
    @media (max-width:600px) { .lt-summary-grid { grid-template-columns:1fr; } }
    .lt-manage-tbl tbody tr:hover td { filter:brightness(0.97); cursor:pointer; }
    /* status-pill */
    .status-pill { display:inline-block; padding:2px 8px; border-radius:5px; font-size:0.7rem; font-weight:700; margin-left:4px; }
    .status-warn { background:#FEF3C7; color:#92400E; }
    /* 범례 */
    .lt-manage-legend { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:10px; font-size:0.72rem; color:#555; align-items:center; }
    .lt-manage-legend-item { display:flex; align-items:center; gap:5px; }
    .lt-legend-bar { width:4px; height:16px; border-radius:2px; flex-shrink:0; }
    .lt-legend-bar-split { width:4px; height:16px; border-radius:2px; flex-shrink:0; background:linear-gradient(to bottom,#9333EA 50%,#16A34A 50%); }
    .lt-manage-tbl tr:hover td { }
    .lt-prop-badge-hai { background:#DBEAFE; color:#1E40AF; font-size:0.68rem; font-weight:700; padding:2px 7px; border-radius:10px; display:inline-block; }
    .lt-prop-badge-sws { background:#EDE9FE; color:#6D28D9; font-size:0.68rem; font-weight:700; padding:2px 7px; border-radius:10px; display:inline-block; }
    .lt-prop-badge-sw  { background:#D1FAE5; color:#065F46; font-size:0.68rem; font-weight:700; padding:2px 7px; border-radius:10px; display:inline-block; }
    .lt-manage-action-btn { padding:3px 10px; border-radius:5px; border:1px solid #E8E0D8; background:#fff; font-size:0.72rem; font-weight:600; cursor:pointer; font-family:inherit; }
    .lt-manage-action-btn:hover { background:#F8F6F3; }
    .lt-manage-action-btn.checkout-btn { border-color:#D8B4FE; color:#9333EA; }
    .lt-manage-action-btn.checkout-btn:hover { background:#FFF5F5; }
    .btn-confirm-checkout { background:#fff; color:#9333EA; border:1px solid #9333EA; padding:6px 14px; border-radius:6px; font-size:0.82rem; font-weight:700; cursor:pointer; font-family:inherit; }
    .btn-confirm-checkout:hover { background:#F3E8FF; }
    .btn-unconfirm-checkout { background:#fff; color:#4a5568; border:1px solid #E8E0D8; padding:6px 14px; border-radius:6px; font-size:0.82rem; font-weight:600; cursor:pointer; font-family:inherit; }
    .btn-unconfirm-checkout:hover { background:#F5F5F4; }
    .btn-delete-guest { background:#fff; color:#991B1B; border:1px solid #991B1B; padding:6px 14px; border-radius:6px; font-size:0.82rem; font-weight:700; cursor:pointer; font-family:inherit; }
    .btn-delete-guest:hover { background:#FEE2E2; }
    /* 모달 섹션 */
    .lmf-modal-section { margin-top:14px; padding-top:12px; border-top:1px solid #F0E8DF; }
    .lmf-section-label { font-size:0.7rem; font-weight:700; color:#A8724A; margin-bottom:6px; letter-spacing:0.4px; text-transform:uppercase; }
    .lmf-btn-row { display:grid; gap:6px; margin-bottom:0; }
    .lmf-btn-row-2 { grid-template-columns:1fr 1fr; }
    .lmf-btn-row-3 { grid-template-columns:1fr 1fr 1fr; }
    .lmf-modal-footer { display:flex; gap:6px; margin-top:14px; padding-top:12px; border-top:1px solid #F0E8DF; align-items:center; }
    .lmf-action-btn { padding:8px 10px; border:none; border-radius:7px; font-size:0.78rem; font-weight:700; cursor:pointer; font-family:inherit; display:flex; align-items:center; justify-content:center; gap:3px; }
    .lmf-btn-kakao  { background:#FEE500; color:#3C1E1E; }
    .lmf-btn-sms    { background:#E0F2FE; color:#075985; }
    .lmf-btn-checkin  { background:#D1FAE5; color:#065F46; }
    .lmf-btn-checkout { background:#FED7AA; color:#9A3412; }
    .lmf-btn-undo     { background:#E2E8F0; color:#4A5568; }
    .lmf-btn-confirm  { background:#fff; color:#6B21A8; border:1px solid #9333EA; }
    .lmf-btn-confirm.confirmed { background:#F3E8FF; }
    .lmf-btn-delete { background:#fff; color:#991B1B; border:1px solid #991B1B; }
    .lmf-btn-cancel { background:#fff; color:#718096; border:1px solid #E2E8F0; }
    .lmf-btn-save   { background:#A8724A; color:#fff; }
    .lt-manage-tbl tbody tr { cursor:pointer; }
    .lt-manage-btn-checkout { padding:8px 16px; background:#fff; color:#9333EA; border:1.5px solid #D8B4FE; border-radius:8px; font-size:0.83rem; font-weight:700; font-family:inherit; cursor:pointer; margin-right:auto; }
    .lt-manage-btn-checkout:hover { background:#FAF5FF; }
    /* ── 게스트 관리 모달 ── */
    .lt-manage-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:2000; display:flex; align-items:center; justify-content:center; padding:16px; }
    .lt-manage-modal { background:#fff; border-radius:14px; padding:22px 24px; width:100%; max-width:560px; max-height:90vh; overflow-y:auto; box-shadow:0 8px 32px rgba(0,0,0,0.18); }
    .lt-manage-modal-title { font-size:1rem; font-weight:800; color:#2C2420; margin-bottom:18px; }
    .lt-manage-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px 14px; }
    .lt-manage-form-full { grid-column:1/-1; }
    .lt-manage-label { font-size:0.73rem; font-weight:700; color:#8B7B72; display:block; margin-bottom:3px; }
    .lt-manage-input { width:100%; border:1px solid #E8E0D8; border-radius:7px; padding:7px 10px; font-size:0.83rem; font-family:inherit; outline:none; box-sizing:border-box; }
    .lt-manage-input:focus { border-color:#A8724A; }
    .lt-manage-won-hint { font-size:0.72rem; color:#9B8B7E; margin-top:2px; display:block; min-height:1em; }
    .lt-manage-toggle-group { display:flex; border:1px solid #E8E0D8; border-radius:7px; overflow:hidden; }
    .lt-manage-toggle-btn { flex:1; padding:7px 0; border:none; background:#fff; font-size:0.83rem; font-family:inherit; cursor:pointer; font-weight:600; color:#8B7B72; }
    .lt-manage-toggle-btn.active { background:#A8724A; color:#fff; }
    /* 이번 결제 방식 (월세 완납 처리용) */
    .lmf-current-pm-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:10px 0 10px; }
    .lmf-current-pm-label { font-size:0.74rem; color:#5F4E3F; font-weight:700; flex-shrink:0; }
    .lmf-current-pm-group { display:inline-flex; flex:0 1 auto; min-width:0; }
    .lmf-current-pm-group .lt-manage-toggle-btn { flex:0 1 auto; padding:6px 12px; font-size:0.78rem; }
    @media (max-width:540px) { .lmf-current-pm-row { gap:6px; } .lmf-current-pm-group { flex:1 1 100%; } }
    .lt-manage-form-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:18px; }
    .lt-manage-btn-cancel { padding:8px 18px; border:1px solid #E8E0D8; border-radius:8px; background:#F8F6F3; color:#8B7B72; font-size:0.83rem; font-family:inherit; cursor:pointer; }
    .lt-manage-btn-save { padding:8px 22px; background:#A8724A; color:#fff; border:none; border-radius:8px; font-size:0.83rem; font-weight:700; font-family:inherit; cursor:pointer; }
    .lt-manage-btn-save:hover { background:#8a5c38; }
    @media (max-width:540px) { .lt-manage-form-grid { grid-template-columns:1fr; } }

    /* ── 탭 사용 가이드 ── */
    .tab-guide-box { background:#F8F6F3; border:1px solid #E8E0D8; border-radius:10px; margin-bottom:16px; overflow:hidden; }
    .tab-guide-toggle { width:100%; text-align:left; padding:10px 16px; background:none; border:none; cursor:pointer; font-size:0.85rem; font-weight:700; color:#A8724A; font-family:inherit; display:flex; justify-content:space-between; align-items:center; }
    .tab-guide-toggle:hover { background:rgba(168,114,74,0.06); }
    .tab-guide-body { padding:0 16px 14px; font-size:0.82rem; color:#4a5568; line-height:1.7; display:none; }
    .tab-guide-body.open { display:block; }
    .tab-guide-body h4 { font-size:0.83rem; font-weight:700; color:#2d3748; margin:10px 0 4px; }
    .tab-guide-body ul { padding-left:16px; margin:0 0 6px; }
    .tab-guide-body li { margin-bottom:3px; }
    .tab-guide-body code { background:#EDF2F7; padding:1px 5px; border-radius:4px; font-size:0.8rem; color:#2d3748; font-family:monospace; }

    /* ── 주간 배정 탭 하위 탭 ── */
    .wk-subtab-bar { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
    .wk-subtab { padding:10px 18px; border:1px solid #E8E0D8; border-radius:10px; background:#fff; color:#5F4E3F; font-size:0.85rem; font-weight:600; cursor:pointer; white-space:nowrap; transition:all 0.15s; min-height:44px; font-family:inherit; }
    .wk-subtab:not(.active):hover { background:#FAF6F1; border-color:#D0C8BC; }
    .wk-subtab.active { background:#A8724A; color:#fff; border-color:#A8724A; box-shadow:0 3px 10px rgba(168,114,74,0.28); }
    .wk-subtab.active span { color:#fff !important; opacity:0.9 !important; }
    /* 근무 설정 하위 탭 */
    .swc-tab-bar { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
    .swc-tab { padding:10px 18px; border:1px solid #E8E0D8; border-radius:10px; background:#fff; color:#5F4E3F; font-size:0.85rem; font-weight:600; cursor:pointer; white-space:nowrap; transition:all 0.15s; min-height:44px; font-family:inherit; }
    .swc-tab:not(.active):hover { background:#FAF6F1; border-color:#D0C8BC; }
    .swc-tab.active { background:#A8724A; color:#fff; border-color:#A8724A; box-shadow:0 3px 10px rgba(168,114,74,0.28); }
    .swc-section { background:#fff; border:1px solid #E8E0D8; border-radius:10px; padding:14px 16px; }
    /* 일정 변경 결재 요청 폼 */
    .swc-req-form-card { background:#FFFAF2; border-color:#F0C896; }
    .swc-req-grid { display:grid; grid-template-columns: repeat(4, 1fr); gap:10px 14px; align-items:end; }
    .swc-req-field { display:flex; flex-direction:column; gap:4px; }
    .swc-req-field-wide { grid-column: span 2; }
    .swc-req-field label { font-size:0.74rem; font-weight:600; color:#5F4E3F; }
    .swc-req-field input[type="date"], .swc-req-field input[type="text"], .swc-req-field select {
      padding:8px 10px; border:1px solid #D0C8BC; border-radius:6px; font-size:0.84rem; font-family:inherit; background:#fff; box-sizing:border-box; min-height:40px;
    }
    .swc-req-radio { display:flex; flex-wrap:wrap; gap:14px; padding:6px 0; }
    .swc-req-radio label { display:inline-flex; align-items:center; gap:5px; font-size:0.84rem; color:#2C2420; cursor:pointer; font-weight:500; }
    .swc-req-actions { justify-self:end; align-items:flex-end; }
    .swc-req-submit { padding:10px 22px; background:#A8724A; color:#fff; border:none; border-radius:8px; font-size:0.88rem; font-weight:700; cursor:pointer; font-family:inherit; min-height:44px; box-shadow:0 2px 6px rgba(168,114,74,0.2); transition:all 0.15s; }
    .swc-req-submit:hover { background:#8B5E3C; }
    /* 결재 진행/완료 목록 */
    .swc-req-list-hd { display:flex; justify-content:space-between; align-items:center; }
    .swc-req-refresh { padding:5px 12px; background:#fff; border:1px solid #D0C8BC; border-radius:5px; font-size:0.78rem; color:#5F4E3F; cursor:pointer; font-family:inherit; font-weight:500; }
    .swc-req-group { margin-bottom:12px; }
    .swc-req-group:last-child { margin-bottom:0; }
    .swc-req-group-hd { font-size:0.84rem; font-weight:700; padding:6px 4px; border-bottom:1.5px solid #F0EBE5; margin-bottom:6px; }
    .swc-req-group-count { display:inline-block; margin-left:6px; padding:1px 8px; background:#F8F6F3; color:#5F4E3F; border-radius:10px; font-size:0.72rem; font-weight:600; }
    .swc-req-item { padding:8px 10px; border:1px solid #F0EBE5; border-radius:7px; margin-bottom:6px; background:#fff; }
    .swc-req-item-row { display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:0.84rem; color:#2C2420; }
    .swc-req-item-meta { margin-top:4px; font-size:0.78rem; color:#5F4E3F; }
    .swc-req-type-tag { padding:2px 9px; border-radius:11px; font-size:0.72rem; font-weight:700; background:#FAF0E0; color:#8B5E3C; border:1px solid #F0C896; }
    .swc-req-tag-vacation    { background:#F3F4F6; color:#4B5563; border-color:#D1D5DB; }
    .swc-req-tag-annual      { background:#FEE2E2; color:#991B1B; border-color:#FCA5A5; }
    .swc-req-tag-half_day    { background:#FEF3C7; color:#92400E; border-color:#F4D89F; }
    .swc-req-tag-leave_early { background:#FEE2E2; color:#991B1B; border-color:#FCA5A5; }
    .swc-req-tag-extra_work  { background:#DCFCE7; color:#065F46; border-color:#86EFAC; }
    .swc-req-tag-self_swap   { background:#E0E7FF; color:#1E1B4B; border-color:#A5B4FC; }
    .swc-req-tag-pair_swap   { background:#F3E8FF; color:#581C87; border-color:#D8B4FE; }
    /* 매니저 결재사항 — 개인일정 변경 입력 필드 (apv-sch-) */
    .apv-sch-grid { display:grid; grid-template-columns: repeat(4, 1fr); gap:10px 14px; align-items:end; margin-bottom:10px; }
    .apv-sch-field { display:flex; flex-direction:column; gap:4px; }
    .apv-sch-field-wide { grid-column: span 2; }
    .apv-sch-field label { font-size:0.74rem; font-weight:600; color:#5F4E3F; }
    .apv-sch-field input[type="date"], .apv-sch-field input[type="text"], .apv-sch-field select {
      padding:7px 9px; border:1px solid #E8E0D8; border-radius:5px; font-size:0.84rem; font-family:inherit; background:#fff; box-sizing:border-box; min-height:38px;
    }
    .apv-sch-radio { display:flex; flex-wrap:wrap; gap:14px; padding:6px 0; }
    .apv-sch-radio label { display:inline-flex; align-items:center; gap:5px; font-size:0.84rem; color:#2C2420; cursor:pointer; font-weight:500; }
    @media (max-width:768px) {
      .apv-sch-grid { grid-template-columns: 1fr; }
      .apv-sch-field-wide { grid-column: span 1; }
    }
    .swc-req-person { font-weight:700; color:#2C2420; }
    .swc-req-dates { font-variant-numeric:tabular-nums; color:#5F4E3F; }
    .swc-req-reason { flex:1; }
    .swc-req-by { color:#A0957F; font-size:0.74rem; }
    .swc-req-item-actions { margin-top:6px; }
    .swc-req-cancel-btn { padding:4px 10px; background:#fff; border:1px solid #FCA5A5; color:#991B1B; border-radius:5px; font-size:0.74rem; cursor:pointer; font-family:inherit; }
    .swc-req-revert-btn { padding:4px 10px; background:#FEF3C7; border:1px solid #F4D89F; color:#92400E; border-radius:5px; font-size:0.74rem; cursor:pointer; font-family:inherit; font-weight:600; }
    .swc-req-revert-btn:hover { background:#FDE68A; }
    /* 시스템 진단 도구 박스 (관리자 결재 탭) */
    .adminpay-diag-box { background:#FFFAF2; border:1px solid #EFE0CC; border-radius:8px; padding:12px 14px; margin-bottom:14px; }
    .adminpay-diag-title { font-weight:700; color:#7B5E3C; margin-bottom:8px; font-size:0.92rem; }
    .adminpay-diag-actions { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
    .adminpay-diag-btn { padding:8px 14px; background:#A8724A; color:#fff; border:none; border-radius:6px; font-size:0.84rem; font-weight:600; cursor:pointer; font-family:inherit; min-height:40px; }
    .adminpay-diag-btn:hover { background:#8B5E3C; }
    .adminpay-diag-hint { color:#A0957F; font-size:0.74rem; line-height:1.55; }
    .adminpay-diag-btn-alt { background:#fff !important; color:#A8724A !important; border:1px solid #A8724A !important; }
    .adminpay-diag-btn-alt:hover { background:#FAF6F1 !important; }
    .hr-diag-section { margin-bottom:12px; }
    .hr-diag-label { font-size:0.78rem; font-weight:700; color:#5F4E3F; margin-bottom:6px; }
    .hr-diag-mode-radios { display:flex; flex-direction:column; gap:5px; }
    .hr-diag-mode-radios label { display:flex; align-items:center; gap:6px; font-size:0.82rem; color:#2C2420; cursor:pointer; }
    .hr-diag-mode-meta { font-size:0.7rem; color:#A0957F; margin-top:6px; }
    .hr-diag-mode-hint { font-size:0.74rem; color:#5F4E3F; margin-top:8px; padding:7px 10px; background:#FFF8EA; border:1px solid #F0E2C6; border-radius:5px; line-height:1.55; }
    .hr-admin-only-tag { display:inline-block; margin-left:8px; padding:1px 8px; background:#F3F4F6; color:#6B7280; border:1px solid #D1D5DB; border-radius:10px; font-size:0.7rem; font-weight:600; vertical-align:middle; }
    .hr-disabled-overlay input[type="radio"] { cursor:not-allowed; }
    .hr-disabled-overlay label { color:#A0957F !important; cursor:not-allowed; }
    .ical-progress { margin-top:8px; padding:9px 12px; background:#FEF3C7; border:1px solid #F4D89F; border-radius:5px; color:#7C5916; font-size:0.84rem; font-weight:600; }
    .ical-history-table { width:100%; border-collapse:collapse; font-size:0.78rem; }
    .ical-history-table th { background:#F5F1EC; padding:6px 8px; text-align:left; font-weight:600; color:#8B7355; font-size:0.72rem; border-bottom:1px solid #E8E0D8; }
    .ical-history-table td { padding:6px 8px; border-bottom:1px solid #F0EBE5; color:#2C2420; }
    .ical-history-table .num { text-align:right; font-variant-numeric:tabular-nums; }
    .ical-trace-row { display:flex; gap:8px; flex-wrap:wrap; }
    .ical-trace-input { flex:1; min-width:140px; padding:8px 10px; border:1px solid #D0C8BC; border-radius:6px; font-size:0.86rem; font-family:inherit; min-height:40px; box-sizing:border-box; }
    .ical-trace-result { margin-top:12px; padding:12px; background:#1F2937; color:#E5E7EB; border-radius:6px; font-size:0.74rem; line-height:1.5; max-height:520px; overflow:auto; font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace; white-space:pre; }
    @media (max-width:768px) { .ical-trace-input { width:100%; } .ical-trace-row .adminpay-diag-btn { width:100%; } }
    /* ── 수집 관리 가이드 (.cg-) ── */
    .cg-outer { background:#FAFAF9; border:1px solid #EFE0CC; border-radius:10px; padding:12px 16px; }
    .cg-outer-summary { cursor:pointer; font-weight:700; font-size:0.92rem; color:#7B5E3C; padding:4px 0; }
    .cg-toc-hint { margin-top:10px; font-size:0.78rem; color:#A0957F; line-height:1.6; margin-bottom:12px; }
    .cg-item { margin-bottom:8px; background:#fff; border:1px solid #E8E0D8; border-radius:8px; }
    .cg-item > summary { cursor:pointer; padding:11px 14px; list-style:none; display:flex; align-items:center; gap:10px; min-height:44px; }
    .cg-item > summary::-webkit-details-marker { display:none; }
    .cg-num { background:#A8724A; color:#fff; width:22px; height:22px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:0.74rem; font-weight:700; flex-shrink:0; }
    .cg-title { flex:1; font-size:0.9rem; color:#2C2420; font-weight:600; }
    .cg-arrow { font-size:0.72rem; color:#A0957F; }
    .cg-item[open] > summary .cg-arrow { transform:rotate(180deg); }
    .cg-body { padding:6px 16px 16px; border-top:1px dashed #F0EBE5; }
    .cg-intro { font-size:0.83rem; line-height:1.65; color:#5F4E3F; margin:12px 0 14px; }
    .cg-list { margin:8px 0; padding-left:20px; font-size:0.82rem; line-height:1.75; color:#2C2420; }
    .cg-list li { margin-bottom:3px; }
    .cg-list code { background:#F5F1EC; padding:1px 5px; border-radius:3px; font-size:0.78rem; color:#7B5E3C; font-family:ui-monospace,Menlo,Monaco,Consolas,monospace; }
    .cg-callout { margin-top:14px; padding:10px 14px; background:#FFF8F2; border-left:4px solid #A8724A; border-radius:5px; font-size:0.82rem; color:#2C2420; line-height:1.65; }
    .cg-warn { margin-top:12px; padding:10px 14px; background:#FEF7E6; border:1px solid #FCD34D; border-radius:6px; font-size:0.82rem; color:#5C3D00; line-height:1.65; }
    .cg-warn ul { margin:6px 0 0; padding-left:18px; }
    .cg-sub-label { font-size:0.78rem; font-weight:700; color:#7B5E3C; margin-top:10px; margin-bottom:6px; }
    .cg-svg { width:100%; max-width:580px; display:block; border:1px solid #E8E0D8; border-radius:6px; margin-top:4px; }
    .cg-table-wrap { overflow-x:auto; margin:8px 0; }
    .cg-table { width:100%; border-collapse:collapse; font-size:0.8rem; }
    .cg-table th { background:#F5F1EC; padding:7px 9px; text-align:left; color:#7B5E3C; font-weight:700; font-size:0.74rem; border-bottom:1.5px solid #E8E0D8; white-space:nowrap; }
    .cg-table td { padding:7px 9px; border-bottom:1px solid #F0EBE5; color:#2C2420; vertical-align:top; }
    @media (max-width:768px) {
      .cg-table { font-size:0.74rem; }
      .cg-table th, .cg-table td { padding:6px 7px; }
      .cg-title { font-size:0.82rem; }
    }
    /* ── 카드 관리 (.cm-) ── */
    #view-card-mgmt .cm-hd { display:flex; align-items:center; gap:10px; margin-bottom:14px; padding-bottom:10px; border-bottom:2px solid #A8724A; }
    #view-card-mgmt .cm-h2 { margin:0; font-size:1.1rem; color:#2C2420; font-weight:700; flex:1; }
    #view-card-mgmt .cm-btn-primary { padding:8px 16px; background:#A8724A; color:#fff; border:none; border-radius:6px; font-weight:700; font-size:0.85rem; cursor:pointer; font-family:inherit; min-height:40px; }
    #view-card-mgmt .cm-btn-primary:hover { background:#8B5E3C; }
    #view-card-mgmt .cm-btn-cancel { padding:8px 16px; background:#fff; border:1px solid #D0C8BC; color:#5F4E3F; border-radius:6px; font-weight:600; font-size:0.85rem; cursor:pointer; font-family:inherit; }
    #view-card-mgmt .cm-alert { padding:12px 14px; border-radius:8px; margin-bottom:10px; font-size:0.84rem; line-height:1.6; }
    #view-card-mgmt .cm-alert-expired { background:#FEE2E2; border:1px solid #D9534F; color:#7F1D1D; }
    #view-card-mgmt .cm-alert-soon { background:#FFF1D6; border:1px solid #F0B400; color:#7A4A00; }
    #view-card-mgmt .cm-alert-title { font-weight:700; margin-bottom:6px; }
    #view-card-mgmt .cm-alert-body { font-size:0.82rem; }
    #view-card-mgmt .cm-alert-foot { margin-top:6px; font-size:0.78rem; font-weight:600; }
    #view-card-mgmt .cm-table-wrap { background:#fff; border:1px solid #E8E0D8; border-radius:10px; overflow-x:auto; margin-top:6px; }
    #view-card-mgmt .cm-table { width:100%; border-collapse:collapse; font-size:0.84rem; }
    #view-card-mgmt .cm-table th { background:#F5F1EC; padding:9px 10px; text-align:left; color:#8B7355; font-weight:700; font-size:0.74rem; border-bottom:1.5px solid #E8E0D8; white-space:nowrap; }
    #view-card-mgmt .cm-table td { padding:9px 10px; border-bottom:1px solid #F0EBE5; color:#2C2420; vertical-align:middle; }
    #view-card-mgmt .cm-table tr.cm-row { cursor:pointer; }
    #view-card-mgmt .cm-table tr.cm-row:hover { background:#FAF6F1; }
    #view-card-mgmt .cm-table tr.cm-row.cm-row-active { background:#FFF8F2; }
    #view-card-mgmt .cm-table .num { text-align:right; font-variant-numeric:tabular-nums; }
    #view-card-mgmt .cm-table .actions { white-space:nowrap; }
    #view-card-mgmt .cm-exp-expired { color:#A0957F; text-decoration:line-through; }
    #view-card-mgmt .cm-exp-soon { color:#D9534F; font-weight:600; }
    #view-card-mgmt .cm-cvc-cell { display:inline-flex; align-items:center; gap:6px; }
    #view-card-mgmt .cm-cvc-mask { font-family:ui-monospace,Menlo,monospace; letter-spacing:2px; }
    #view-card-mgmt .cm-cvc-btn { padding:3px 8px; font-size:0.7rem; background:#A8724A; color:#fff; border:none; border-radius:4px; cursor:pointer; font-family:inherit; min-height:32px; min-width:44px; }
    #view-card-mgmt .cm-cvc-btn:hover { background:#8B5E3C; }
    #view-card-mgmt .cm-row-act-btn { padding:4px 9px; font-size:0.74rem; border:1px solid #D0C8BC; background:#fff; color:#5F4E3F; border-radius:4px; cursor:pointer; margin-left:4px; font-family:inherit; }
    #view-card-mgmt .cm-row-act-btn.cm-del { color:#B91C1C; border-color:#FECACA; }
    #view-card-mgmt .cm-detail { margin-top:14px; padding:14px 16px; background:#FFFAF2; border:1px solid #EFE0CC; border-radius:10px; }
    #view-card-mgmt .cm-detail-title { font-weight:700; color:#7B5E3C; font-size:0.96rem; margin-bottom:10px; }
    #view-card-mgmt .cm-detail-sec { margin-top:12px; }
    #view-card-mgmt .cm-detail-sec-label { font-size:0.78rem; font-weight:700; color:#5F4E3F; margin-bottom:6px; }
    #view-card-mgmt .cm-benefits-list { padding-left:18px; margin:0; font-size:0.82rem; line-height:1.7; color:#2C2420; }
    #view-card-mgmt .cm-at-table { width:100%; border-collapse:collapse; font-size:0.82rem; background:#fff; border:1px solid #E8E0D8; border-radius:6px; overflow:hidden; }
    #view-card-mgmt .cm-at-table th { background:#F5F1EC; padding:7px 9px; text-align:left; color:#8B7355; font-size:0.72rem; font-weight:600; }
    #view-card-mgmt .cm-at-table td { padding:7px 9px; border-bottom:1px solid #F0EBE5; }
    #view-card-mgmt .cm-at-table .num { text-align:right; font-variant-numeric:tabular-nums; }
    #view-card-mgmt .cm-totals { margin-top:8px; padding:8px 12px; background:#fff; border:1px solid #E8E0D8; border-radius:6px; font-size:0.82rem; color:#5F4E3F; }
    #view-card-mgmt .cm-totals b { color:#A8724A; }
    /* 모달 */
    .cm-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.45); display:flex; align-items:flex-start; justify-content:center; z-index:9000; overflow-y:auto; padding:20px; }
    .cm-modal { background:#fff; width:760px; max-width:96vw; border-radius:12px; overflow:hidden; box-shadow:0 6px 30px rgba(0,0,0,0.18); margin:auto; }
    .cm-modal-hd { padding:14px 18px; background:#A8724A; color:#fff; font-weight:700; font-size:0.95rem; display:flex; justify-content:space-between; align-items:center; }
    .cm-modal-x { background:none; border:none; color:#fff; font-size:1.4rem; cursor:pointer; padding:0 6px; }
    .cm-modal-body { padding:16px 18px; max-height:70vh; overflow-y:auto; }
    .cm-modal-ft { padding:10px 18px 14px; display:flex; gap:8px; justify-content:flex-end; border-top:1px solid #F0EBE5; }
    .cm-form-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap:10px 12px; }
    .cm-field { display:flex; flex-direction:column; gap:3px; }
    .cm-field label { font-size:0.74rem; font-weight:600; color:#5F4E3F; }
    .cm-field input { padding:7px 9px; border:1px solid #D0C8BC; border-radius:5px; font-size:0.84rem; font-family:inherit; background:#fff; box-sizing:border-box; min-height:38px; }
    .cm-section { margin-top:14px; padding-top:12px; border-top:1px dashed #E8E0D8; }
    .cm-section-hd { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; font-weight:700; color:#5F4E3F; font-size:0.84rem; }
    .cm-add-line-btn { padding:4px 10px; background:#fff; border:1px solid #A8724A; color:#A8724A; border-radius:5px; cursor:pointer; font-size:0.74rem; font-weight:600; font-family:inherit; }
    .cm-line-row { display:flex; gap:6px; margin-bottom:6px; align-items:center; }
    .cm-line-row input { flex:1; padding:6px 8px; border:1px solid #D0C8BC; border-radius:4px; font-size:0.82rem; font-family:inherit; min-height:34px; }
    .cm-line-row .cm-at-num { flex:0 0 100px; }
    .cm-line-row .cm-rm-btn { padding:4px 9px; background:#fff; border:1px solid #FECACA; color:#B91C1C; border-radius:4px; cursor:pointer; font-size:0.74rem; font-family:inherit; }
    /* 필터 바 */
    #view-card-mgmt .cm-filter-bar { display:grid; grid-template-columns: 160px 160px 1fr 180px; gap:10px; padding:12px 14px; background:#FFFAF2; border:1px solid #EFE0CC; border-radius:10px; margin-bottom:14px; align-items:end; }
    #view-card-mgmt .cm-filter-field { display:flex; flex-direction:column; gap:4px; }
    #view-card-mgmt .cm-filter-field label { font-size:0.72rem; font-weight:700; color:#7B5E3C; }
    #view-card-mgmt .cm-filter-field select,
    #view-card-mgmt .cm-filter-field input { padding:7px 9px; border:1px solid #D0C8BC; border-radius:5px; font-size:0.84rem; font-family:inherit; min-height:38px; background:#fff; box-sizing:border-box; }
    #view-card-mgmt .cm-lock-toggle { display:inline-flex; align-items:center; gap:6px; padding:7px 9px; background:#fff; border:1px solid #D0C8BC; border-radius:5px; font-size:0.82rem; color:#5F4E3F; cursor:pointer; min-height:38px; }
    /* 카드 그리드 */
    #view-card-mgmt .cm-grid { display:grid; grid-template-columns: repeat(4, 1fr); gap:12px; margin-top:6px; }
    #view-card-mgmt .cm-loading { grid-column: 1 / -1; text-align:center; padding:24px; color:#a0aec0; }
    #view-card-mgmt .cm-empty { grid-column: 1 / -1; text-align:center; padding:24px; color:#A0957F; }
    #view-card-mgmt .cm-card { background:#fff; border:1px solid #E8E0D8; border-radius:10px; padding:12px 14px; cursor:pointer; transition:all 0.15s; position:relative; }
    #view-card-mgmt .cm-card:hover { border-color:#A8724A; box-shadow:0 3px 12px rgba(168,114,74,0.12); }
    #view-card-mgmt .cm-card.cm-card-locked { border-left:4px solid #F0B400; padding-left:11px; }
    #view-card-mgmt .cm-card.cm-card-active { border-color:#A8724A; border-width:2px; padding:11px 13px; box-shadow:0 4px 16px rgba(168,114,74,0.25); background:#FFFAF2; transform:translateY(-2px); }
    /* 인라인 상세 패널 (그리드 row 끝에 full-width 펼침) */
    #view-card-mgmt .cm-detail-inline { grid-column: 1 / -1; margin-top:4px; padding:16px 18px; background:#fff; border:1px solid #A8724A; border-radius:10px; box-shadow:0 4px 14px rgba(168,114,74,0.18); }
    /* 모바일 모달 — 풀스크린 */
    #view-card-mgmt .cm-detail-modal { position:fixed; inset:0; background:rgba(0,0,0,0.45); display:flex; align-items:flex-start; justify-content:center; z-index:9000; overflow-y:auto; padding:10px; }
    #view-card-mgmt .cm-detail-modal-inner { background:#fff; width:100%; max-width:720px; max-height:calc(100vh - 20px); overflow-y:auto; border-radius:10px; padding:16px 18px; margin:auto; box-shadow:0 6px 30px rgba(0,0,0,0.2); }
    /* reward type 뱃지 */
    .cm-rw-type { display:inline-block; padding:1px 7px; border-radius:5px; font-size:0.68rem; font-weight:700; }
    .cm-rw-type-적립      { background:#E1F5EE; color:#0F6E56; }
    .cm-rw-type-청구할인  { background:#FBEAF0; color:#72243E; }
    .cm-rw-type-정액할인  { background:#FAEEDA; color:#854F0B; }
    .cm-rw-type-default   { background:#F3F4F6; color:#4B5563; }
    /* 카드 그리드 자동이체 카운트 뱃지 */
    #view-card-mgmt .cm-badge-at { background:#F1EFE8; color:#5F4E3F; border:1px solid #E8E0D8; }
    /* 상세 자동이체 빈 상태 */
    #view-card-mgmt .cm-at-empty { padding:10px 12px; background:#FAFAF9; border:1px dashed #D0C8BC; border-radius:6px; font-size:0.82rem; color:#5F4E3F; }
    #view-card-mgmt .cm-at-pool-link { color:#A8724A; text-decoration:underline; font-weight:600; cursor:pointer; }
    /* 사업자별 합계 줄 */
    #view-card-mgmt .cm-totals-biz-row { margin-top:6px; display:flex; flex-wrap:wrap; gap:8px; }
    #view-card-mgmt .cm-totals-biz { padding:3px 9px; background:#F1EFE8; color:#5F4E3F; border-radius:5px; font-size:0.76rem; }
    #view-card-mgmt .cm-totals-biz b { color:#A8724A; }
    /* 자동이체 풀 드롭다운 */
    #view-card-mgmt .cm-at-assign-sel { padding:5px 8px; border:1px solid #D0C8BC; border-radius:5px; background:#fff; font-size:0.78rem; font-family:inherit; min-height:32px; max-width:200px; }
    #view-card-mgmt .cm-at-assign-sel:disabled { background:#F5F1EC; color:#A0957F; cursor:not-allowed; }
    #view-card-mgmt .cm-card-hd { display:flex; justify-content:space-between; align-items:flex-start; gap:6px; margin-bottom:8px; }
    #view-card-mgmt .cm-card-title { flex:1; }
    #view-card-mgmt .cm-card-name { font-size:0.92rem; font-weight:700; color:#2C2420; line-height:1.3; }
    #view-card-mgmt .cm-card-company { font-size:0.72rem; color:#7B5E3C; margin-top:2px; }
    #view-card-mgmt .cm-card-lock-btn { flex-shrink:0; width:32px; height:32px; border-radius:6px; border:1px solid #E8E0D8; background:#fff; cursor:pointer; font-size:0.95rem; padding:0; }
    #view-card-mgmt .cm-card-lock-btn.locked { background:#FEF3C7; border-color:#F0B400; }
    #view-card-mgmt .cm-card-badges { display:flex; gap:5px; flex-wrap:wrap; margin-bottom:8px; }
    #view-card-mgmt .cm-badge { display:inline-block; padding:2px 8px; border-radius:11px; font-size:0.7rem; font-weight:700; }
    #view-card-mgmt .cm-badge-biz { background:#E0E7FF; color:#3730A3; border:1px solid #A5B4FC; }
    #view-card-mgmt .cm-badge-day { background:#FEF3C7; color:#92400E; border:1px solid #F4D89F; }
    #view-card-mgmt .cm-card-grid4 { display:grid; grid-template-columns: repeat(2, 1fr); gap:6px; margin-top:6px; }
    #view-card-mgmt .cm-card-box { background:#FAFAF9; border:1px solid #F0EBE5; border-radius:6px; padding:6px 8px; min-height:48px; }
    #view-card-mgmt .cm-card-box-label { font-size:0.66rem; color:#8B7355; font-weight:600; margin-bottom:2px; }
    #view-card-mgmt .cm-card-box-val { font-size:0.78rem; color:#2C2420; font-weight:600; line-height:1.35; }
    #view-card-mgmt .cm-card-box.exp-expired .cm-card-box-val { color:#A0957F; text-decoration:line-through; }
    #view-card-mgmt .cm-card-box.exp-soon .cm-card-box-val { color:#D9534F; }
    /* 상세 패널 */
    #view-card-mgmt .cm-detail { margin-top:14px; padding:16px 18px; background:#fff; border:1px solid #EFE0CC; border-radius:10px; }
    #view-card-mgmt .cm-detail-title { font-weight:700; color:#7B5E3C; font-size:1rem; margin-bottom:10px; display:flex; justify-content:space-between; align-items:center; }
    #view-card-mgmt .cm-detail-actions { display:flex; gap:6px; }
    #view-card-mgmt .cm-detail-grid4 { display:grid; grid-template-columns: repeat(4, 1fr); gap:10px; margin:10px 0 14px; }
    #view-card-mgmt .cm-detail-box { background:#FAFAF9; border:1px solid #F0EBE5; border-radius:7px; padding:9px 11px; }
    #view-card-mgmt .cm-detail-box-label { font-size:0.7rem; color:#8B7355; font-weight:700; margin-bottom:4px; }
    #view-card-mgmt .cm-detail-box-val { font-size:0.86rem; color:#2C2420; font-weight:600; }
    #view-card-mgmt .cm-detail-sec { margin-top:14px; padding-top:12px; border-top:1px dashed #E8E0D8; }
    #view-card-mgmt .cm-detail-sec-label { font-size:0.82rem; font-weight:700; color:#5F4E3F; margin-bottom:8px; }
    #view-card-mgmt .cm-tier-bar { display:flex; gap:8px; margin-top:8px; flex-wrap:wrap; }
    #view-card-mgmt .cm-tier { flex:1; min-width:160px; padding:10px 12px; border:1px solid #C5E5D8; border-radius:7px; background:#E1F5EE; font-size:0.82rem; color:#0F6E56; }
    #view-card-mgmt .cm-tier b { color:#0F6E56; font-size:0.88rem; }
    #view-card-mgmt .cm-tier-range { font-size:0.76rem; margin-top:4px; color:#0F6E56; opacity:0.85; }
    #view-card-mgmt .cm-tier-type { display:inline-block; padding:1px 8px; margin-left:4px; background:#E1F5EE; color:#0F6E56; border:1px solid #C5E5D8; border-radius:9px; font-size:0.7rem; font-weight:700; vertical-align:middle; }
    #view-card-mgmt .cm-perf-line { margin-top:7px; padding:6px 10px; border-radius:5px; font-size:0.8rem; line-height:1.55; }
    #view-card-mgmt .cm-perf-line-incl { background:#E1F5EE; color:#0F6E56; }
    #view-card-mgmt .cm-perf-line-excl { background:#FBEAF0; color:#993556; }
    #view-card-mgmt .cm-perf-notes { margin-top:7px; padding:6px 10px; border-radius:5px; background:#F5F1EC; color:#5F4E3F; font-size:0.78rem; line-height:1.55; }
    #view-card-mgmt .cm-rewards-table { width:100%; border-collapse:collapse; font-size:0.8rem; }
    #view-card-mgmt .cm-rewards-table th { background:#F5F1EC; padding:6px 8px; text-align:left; color:#8B7355; font-size:0.7rem; font-weight:700; }
    #view-card-mgmt .cm-rewards-table td { padding:6px 8px; border-bottom:1px solid #F0EBE5; color:#2C2420; vertical-align:top; }
    #view-card-mgmt .cm-yearly-box { padding:10px 12px; background:#FBEAF0; border:1px solid #ECC3D4; border-radius:7px; font-size:0.85rem; color:#72243E; line-height:1.6; }
    #view-card-mgmt .cm-perf-cols { display:grid; grid-template-columns: 1fr 1fr; gap:10px; }
    #view-card-mgmt .cm-perf-box { padding:9px 11px; border-radius:6px; font-size:0.8rem; line-height:1.6; }
    #view-card-mgmt .cm-perf-incl { background:#DCFCE7; border:1px solid #86EFAC; color:#065F46; }
    #view-card-mgmt .cm-perf-excl { background:#FEE2E2; border:1px solid #FCA5A5; color:#7F1D1D; }
    /* 자동이체 풀 */
    #view-card-mgmt .cm-at-pool { margin-top:18px; background:#FFFAF2; border:1px solid #EFE0CC; border-radius:10px; padding:8px 14px; }
    #view-card-mgmt .cm-at-pool > summary { cursor:pointer; padding:6px 0; font-weight:700; color:#7B5E3C; font-size:0.92rem; list-style:none; }
    #view-card-mgmt .cm-at-pool > summary::-webkit-details-marker { display:none; }
    #view-card-mgmt .cm-at-count { display:inline-block; margin-left:6px; padding:2px 9px; background:#fff; color:#A8724A; border:1px solid #EFE0CC; border-radius:11px; font-size:0.72rem; font-weight:700; }
    #view-card-mgmt .cm-at-pool-body { padding:10px 0 4px; }
    #view-card-mgmt .cm-at-pool-actions { margin-bottom:10px; display:flex; justify-content:flex-end; }
    #view-card-mgmt .cm-at-table-wrap { background:#fff; border:1px solid #E8E0D8; border-radius:8px; overflow-x:auto; }
    #view-card-mgmt .cm-at-pool-table { width:100%; border-collapse:collapse; font-size:0.8rem; min-width:780px; }
    #view-card-mgmt .cm-at-pool-table th { background:#F5F1EC; padding:8px 10px; text-align:left; color:#8B7355; font-size:0.72rem; font-weight:700; border-bottom:1.5px solid #E8E0D8; white-space:nowrap; }
    #view-card-mgmt .cm-at-pool-table td { padding:8px 10px; border-bottom:1px solid #F0EBE5; vertical-align:middle; color:#2C2420; }
    #view-card-mgmt .cm-at-pool-table .num { text-align:right; font-variant-numeric:tabular-nums; }
    #view-card-mgmt .cm-at-pool-table .actions { white-space:nowrap; text-align:right; }
    #view-card-mgmt .cm-at-pool-table .cm-at-sticky { position:sticky; left:0; background:#F5F1EC; }
    #view-card-mgmt .cm-at-pool-table td.cm-at-sticky { background:#fff; font-weight:600; }
    /* 카테고리 뱃지 컬러 */
    .cm-cat-badge { display:inline-block; padding:2px 8px; border-radius:6px; font-size:0.7rem; font-weight:700; }
    .cm-cat-수도          { background:#DBEAFE; color:#1E40AF; }
    .cm-cat-전기          { background:#FEF3C7; color:#92400E; }
    .cm-cat-가스          { background:#FEE2E2; color:#991B1B; }
    .cm-cat-4대보험       { background:#CCFBF1; color:#0F766E; }
    .cm-cat-통신          { background:#F3E8FF; color:#6B21A8; }
    .cm-cat-주유          { background:#FED7AA; color:#9A3412; }
    .cm-cat-세금          { background:#E5E7EB; color:#374151; }
    .cm-cat-보험          { background:#CCFBF1; color:#0F766E; }
    .cm-cat-렌탈          { background:#E5E7EB; color:#374151; }
    .cm-cat-온라인쇼핑    { background:#FCE7F3; color:#9D174D; }
    .cm-cat-편의점        { background:#FEF3C7; color:#92400E; }
    .cm-cat-기타          { background:#E5E7EB; color:#374151; }
    @media (max-width:1100px) { #view-card-mgmt .cm-grid { grid-template-columns: repeat(2, 1fr); } #view-card-mgmt .cm-detail-grid4 { grid-template-columns: repeat(2, 1fr); } }
    /* ── 거래처 (.ct-) ── */
    #view-mgr-house .ct-hd { display:flex; align-items:center; gap:10px; margin-bottom:8px; padding-bottom:10px; border-bottom:2px solid #A8724A; }
    #view-mgr-house .ct-h2 { margin:0; font-size:1.1rem; color:#2C2420; font-weight:700; flex:1; }
    #view-mgr-house .ct-btn-primary { padding:8px 16px; background:#A8724A; color:#fff; border:none; border-radius:6px; font-weight:700; font-size:0.85rem; cursor:pointer; font-family:inherit; min-height:40px; }
    #view-mgr-house .ct-btn-primary:hover { background:#8B5E3C; }
    #view-mgr-house .ct-section-hint { font-size:0.78rem; color:#A0957F; margin-bottom:14px; }
    #view-mgr-house .ct-filter-bar { display:grid; grid-template-columns: 180px 160px 1fr 180px; gap:10px; padding:12px 14px; background:#FFFAF2; border:1px solid #EFE0CC; border-radius:10px; margin-bottom:14px; align-items:end; position:sticky; top:0; z-index:5; }
    #view-mgr-house .ct-filter-field { display:flex; flex-direction:column; gap:4px; }
    #view-mgr-house .ct-filter-field label { font-size:0.72rem; font-weight:700; color:#7B5E3C; }
    #view-mgr-house .ct-filter-field select,
    #view-mgr-house .ct-filter-field input { padding:7px 9px; border:1px solid #D0C8BC; border-radius:5px; font-size:0.84rem; font-family:inherit; min-height:38px; background:#fff; box-sizing:border-box; }
    #view-mgr-house .ct-fav-toggle { display:inline-flex; align-items:center; gap:6px; padding:7px 9px; background:#fff; border:1px solid #D0C8BC; border-radius:5px; font-size:0.82rem; color:#5F4E3F; cursor:pointer; min-height:38px; }
    /* 즐겨찾기 영역 */
    #view-mgr-house .ct-favs-wrap { background:#FFF8E0; border:1px solid #F0E2C6; border-radius:10px; padding:12px 14px; margin-bottom:14px; }
    #view-mgr-house .ct-favs-title { font-size:0.88rem; font-weight:700; color:#7B5E3C; margin-bottom:10px; }
    #view-mgr-house .ct-favs-grid { display:grid; grid-template-columns: repeat(4, 1fr); gap:10px; }
    #view-mgr-house .ct-fav-card { background:#fff; border:1px solid #F0E2C6; border-radius:8px; padding:10px 12px; cursor:pointer; transition:all 0.15s; }
    #view-mgr-house .ct-fav-card:hover { border-color:#A8724A; box-shadow:0 2px 8px rgba(168,114,74,0.12); }
    #view-mgr-house .ct-fav-name { font-weight:700; color:#2C2420; font-size:0.86rem; }
    #view-mgr-house .ct-fav-meta { display:flex; gap:5px; margin:5px 0; flex-wrap:wrap; }
    #view-mgr-house .ct-fav-phone { font-size:0.82rem; color:#185FA5; margin-top:4px; font-variant-numeric:tabular-nums; }
    #view-mgr-house .ct-fav-memo { font-size:0.74rem; color:#5F4E3F; margin-top:4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    /* 목록 */
    #view-mgr-house .ct-list-wrap { background:#fff; border:1px solid #E8E0D8; border-radius:10px; overflow-x:auto; }
    #view-mgr-house .ct-table { width:100%; border-collapse:collapse; font-size:0.84rem; }
    #view-mgr-house .ct-table th { background:#F5F1EC; padding:9px 10px; text-align:left; color:#8B7355; font-weight:700; font-size:0.74rem; border-bottom:1.5px solid #E8E0D8; white-space:nowrap; }
    #view-mgr-house .ct-table td { padding:9px 10px; border-bottom:1px solid #F0EBE5; vertical-align:middle; color:#2C2420; }
    #view-mgr-house .ct-table tr.ct-row { cursor:pointer; }
    #view-mgr-house .ct-table tr.ct-row:hover { background:#FAF6F1; }
    #view-mgr-house .ct-table tr.ct-row-active { background:#FFF8F2; }
    #view-mgr-house .ct-table .ct-th-fav { width:30px; text-align:center; }
    #view-mgr-house .ct-table .actions { white-space:nowrap; text-align:right; }
    #view-mgr-house .ct-fav-star { background:none; border:none; cursor:pointer; font-size:1rem; padding:2px; min-width:30px; min-height:30px; }
    #view-mgr-house .ct-fav-star.on { color:#F0B400; }
    #view-mgr-house .ct-fav-star.off { color:#D1D5DB; }
    #view-mgr-house .ct-phone-link { color:#185FA5; text-decoration:underline; font-variant-numeric:tabular-nums; }
    #view-mgr-house .ct-memo-short { color:#5F4E3F; font-size:0.78rem; max-width:280px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    #view-mgr-house .ct-row-act-btn { padding:4px 9px; font-size:0.74rem; border:1px solid #D0C8BC; background:#fff; color:#5F4E3F; border-radius:4px; cursor:pointer; margin-left:4px; font-family:inherit; }
    #view-mgr-house .ct-row-act-btn.ct-del { color:#B91C1C; border-color:#FECACA; }
    /* 카테고리 뱃지 */
    .ct-cat-badge { display:inline-block; padding:2px 8px; border-radius:6px; font-size:0.7rem; font-weight:700; white-space:nowrap; }
    .ct-cat-수도,.ct-cat-공과금수도 { background:#E6F1FB; color:#0C447C; }
    .ct-cat-전기,.ct-cat-공과금전기 { background:#FAEEDA; color:#854F0B; }
    .ct-cat-가스,.ct-cat-공과금가스 { background:#FCEBEB; color:#791F1F; }
    .ct-cat-통신     { background:#EEEDFE; color:#3C3489; }
    .ct-cat-카드사   { background:#FBEAF0; color:#72243E; }
    .ct-cat-보험사   { background:#E1F5EE; color:#085041; }
    .ct-cat-렌탈     { background:#F1EFE8; color:#444441; }
    .ct-cat-OTA      { background:#EAF3DE; color:#27500A; }
    .ct-cat-회계세무 { background:#F1EFE8; color:#444441; }
    .ct-cat-은행     { background:#F1EFE8; color:#444441; }
    .ct-cat-임대인   { background:#FAECE7; color:#712B13; }
    .ct-cat-시설보수 { background:#FAECE7; color:#712B13; }
    .ct-cat-청소세탁 { background:#F1EFE8; color:#444441; }
    .ct-cat-직원알선 { background:#F1EFE8; color:#444441; }
    .ct-cat-기타     { background:#F1EFE8; color:#444441; }
    .ct-biz-badge { display:inline-block; padding:2px 8px; border-radius:6px; font-size:0.7rem; font-weight:700; background:#E5E7EB; color:#374151; white-space:nowrap; }
    /* 상세 */
    #view-mgr-house .ct-detail { margin-top:14px; padding:16px 18px; background:#fff; border:1px solid #EFE0CC; border-radius:10px; }
    #view-mgr-house .ct-detail-title { font-size:1rem; font-weight:700; color:#7B5E3C; display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:12px; flex-wrap:wrap; }
    #view-mgr-house .ct-detail-meta { display:flex; gap:6px; flex-wrap:wrap; }
    #view-mgr-house .ct-detail-sec { margin-top:14px; padding-top:12px; border-top:1px dashed #E8E0D8; }
    #view-mgr-house .ct-detail-sec-label { font-size:0.78rem; font-weight:700; color:#5F4E3F; margin-bottom:8px; }
    #view-mgr-house .ct-person-row,
    #view-mgr-house .ct-phone-row { display:flex; gap:10px; align-items:center; padding:5px 0; font-size:0.86rem; flex-wrap:wrap; }
    #view-mgr-house .ct-person-name { font-weight:700; color:#2C2420; min-width:80px; }
    #view-mgr-house .ct-person-title { color:#7B5E3C; font-size:0.78rem; min-width:50px; }
    #view-mgr-house .ct-phone-label { color:#7B5E3C; font-size:0.78rem; font-weight:600; min-width:50px; }
    #view-mgr-house .ct-detail-memo { padding:8px 12px; background:#FAFAF9; border:1px solid #F0EBE5; border-radius:6px; font-size:0.84rem; color:#2C2420; line-height:1.65; white-space:pre-wrap; }
    #view-mgr-house .ct-last-contacted { display:flex; align-items:center; gap:10px; font-size:0.82rem; color:#5F4E3F; }
    #view-mgr-house .ct-last-contacted button { padding:4px 10px; font-size:0.74rem; background:#fff; border:1px solid #A8724A; color:#A8724A; border-radius:5px; cursor:pointer; font-family:inherit; }
    @media (max-width:768px) {
      #view-mgr-house .ct-filter-bar { grid-template-columns: 1fr 1fr; }
      #view-mgr-house .ct-filter-search { grid-column: span 2; }
      #view-mgr-house .ct-filter-fav { grid-column: span 2; }
      #view-mgr-house .ct-favs-grid { grid-template-columns: 1fr; }
      #view-mgr-house .ct-table thead { display:none; }
      #view-mgr-house .ct-table, #view-mgr-house .ct-table tbody, #view-mgr-house .ct-table tr, #view-mgr-house .ct-table td { display:block; }
      #view-mgr-house .ct-table tr.ct-row { padding:10px 12px; border-bottom:1px solid #F0EBE5; }
      #view-mgr-house .ct-table td { padding:4px 0; border-bottom:none; display:flex; justify-content:space-between; gap:10px; align-items:center; }
      #view-mgr-house .ct-table td::before { content:attr(data-label); font-weight:700; color:#8B7355; font-size:0.74rem; flex-shrink:0; }
      #view-mgr-house .ct-table td.actions { justify-content:flex-end; padding-top:8px; }
      #view-mgr-house .ct-phone-link { padding:8px 12px; background:#EFF6FF; border:1px solid #BFDBFE; border-radius:6px; min-height:44px; display:inline-flex; align-items:center; text-decoration:none; }
      #view-mgr-house .ct-memo-short { max-width:none; white-space:normal; }
    }
    @media (max-width:768px) {
      #view-card-mgmt .cm-filter-bar { grid-template-columns: 1fr; }
      #view-card-mgmt .cm-grid { grid-template-columns: 1fr; }
      #view-card-mgmt .cm-detail-grid4 { grid-template-columns: 1fr 1fr; }
      #view-card-mgmt .cm-perf-cols { grid-template-columns: 1fr; }
      .cm-form-grid { grid-template-columns: 1fr; }
      #view-card-mgmt .cm-cvc-btn { min-width:48px; padding:6px 10px; min-height:36px; }
      #view-card-mgmt .cm-card-lock-btn { width:36px; height:36px; }
    }
    .hr-diag-last { background:#fff; border:1px solid #E8E0D8; border-radius:6px; padding:9px 11px; font-size:0.82rem; color:#2C2420; line-height:1.55; }
    .hr-diag-last.success { background:#DCFCE7; border-color:#86EFAC; }
    .hr-diag-last.fail    { background:#FEE2E2; border-color:#FCA5A5; color:#7F1D1D; }
    .hr-diag-fail-badge { display:inline-block; padding:1px 8px; margin-left:6px; background:#FCA5A5; color:#7F1D1D; border-radius:10px; font-size:0.7rem; font-weight:700; }
    @media (max-width:768px) { .adminpay-diag-btn { width:100%; } .hr-diag-mode-radios label { font-size:0.78rem; } }
    .swc-req-applied-tag { margin-left:auto; padding:2px 9px; background:#DCFCE7; color:#065F46; border:1px solid #86EFAC; border-radius:11px; font-size:0.7rem; font-weight:700; }
    .swc-req-note { margin-top:6px; padding:5px 9px; background:#F8F6F3; border-left:3px solid #A8724A; font-size:0.76rem; color:#5F4E3F; border-radius:3px; }
    @media (max-width:768px) {
      .swc-tab-bar { flex-direction:column; } .swc-tab { width:100%; }
      .swc-req-grid { grid-template-columns: 1fr; }
      .swc-req-field-wide { grid-column: span 1; }
      .swc-req-actions { justify-self:stretch; }
      .swc-req-submit { width:100%; }
    }
    .wk-notice { margin-bottom:14px; padding:8px 14px; background:#fffbeb; border:1px solid #f6e05e; border-radius:8px; font-size:0.82rem; color:#744210; }
    .assign-chip { display:inline-block; padding:2px 7px; background:#ebf4ff; color:#2b6cb0; border-radius:12px; font-size:0.75rem; margin:1px 2px; white-space:nowrap; }
    /* ── 공통 레이아웃: 상단 2열 ── */
    .wk-pane { }
    .wk-top-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:14px; align-items:stretch; }
    .wk-top-mgr, .wk-top-avail { min-width:0; display:flex; flex-direction:column; }
    .wk-avail-card { background:#fff; border-radius:10px; padding:12px; border:1px solid #e2e8f0; }
    .wk-top-card { background:#fff; border:0.5px solid #E8E0D8; border-radius:10px; padding:10px 12px; flex:1; }
    .wk-top-card-title { font-size:0.8rem; font-weight:700; color:#2C2420; margin-bottom:8px; }
    .wk-compact-table { width:100%; border-collapse:collapse; font-size:0.72rem; }
    .wk-compact-table th { background:#A8724A; color:#fff; padding:6px 3px; text-align:center; font-weight:600; font-size:0.68rem; white-space:nowrap; }
    .wk-compact-table th.lh { text-align:left; padding-left:10px; min-width:90px; }
    .wk-compact-table td { padding:3px 3px; border-bottom:0.5px solid #f0f0f0; text-align:center; }
    .wk-compact-table td.lh { text-align:left; padding-left:10px; font-weight:600; color:#2C2420; background:#FAF7F3; white-space:nowrap; }
    .wk-compact-on  { display:inline-block !important; background:#D1E7D7 !important; color:#2D6A4F !important; border:none !important; border-radius:6px; padding:3px 10px; font-size:0.7rem; font-weight:700; min-width:40px; cursor:pointer; }
    .wk-compact-off { display:inline-block !important; background:#EEEEEE !important; color:#888 !important; border:none !important; border-radius:6px; padding:3px 10px; font-size:0.7rem; font-weight:500; min-width:40px; cursor:pointer; }
    .wk-compact-vac { display:inline-block; background:#FFE8E0; color:#C05621; border-radius:6px; padding:3px 10px; font-size:0.7rem; font-weight:600; min-width:40px; }
    .wk-avail-row { display:flex; justify-content:space-between; align-items:center; padding:3px 0; border-bottom:0.5px solid #f0f0f0; }
    .wk-avail-row:last-child { border-bottom:none; }
    .wk-avail-name { font-size:0.75rem; font-weight:600; color:#2C2420; min-width:44px; }
    .wk-avail-days { display:flex; gap:2px; }
    .wk-avail-day { width:18px; height:18px; border-radius:50%; font-size:0.6rem; display:inline-flex; align-items:center; justify-content:center; font-weight:600; }
    .wk-day-on { background:#E1F5EE; color:#0F6E56; }
    .wk-day-off { background:#f0f0f0; color:#a0aec0; }
    .wk-month-filter { display:flex; align-items:flex-end; gap:0; flex-wrap:nowrap; overflow-x:auto; padding:4px 0 10px; }
    .wk-month-filter-sec { display:flex; flex-direction:column; }
    .wk-month-filter-label { font-size:9px; font-weight:500; color:#a0aec0; letter-spacing:0.4px; margin-bottom:3px; padding:0 4px; white-space:nowrap; }
    .wk-month-filter-chips { display:flex; gap:4px; flex-wrap:wrap; }
    .wk-month-divider { width:1px; height:22px; background:#E8E0D8; margin:0 5px; flex-shrink:0; align-self:center; }
    .wk-month-chip { padding:3px 10px; border-radius:20px; font-size:11px; font-weight:500; cursor:pointer; border:1.5px solid #E8E0D8; white-space:nowrap; background:#f7fafc; color:#718096; transition:all 0.12s; min-height:28px; display:inline-flex; align-items:center; }
    .wk-month-chip.active-all { background:#2C2420; color:#fff; border-color:#2C2420; }
    /* 매니저/청소스태프 그룹 분리 레이아웃 */
    .wk-month-filter-grouped { display:flex; flex-direction:column; align-items:stretch; gap:8px; flex-wrap:wrap; overflow:visible; padding:6px 0 12px; }
    .wk-month-filter-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
    .wk-month-filter-grouphd { font-size:0.74rem; font-weight:700; color:#5F4E3F; flex-shrink:0; min-width:64px; }
    @media (max-width:768px) {
      .wk-month-filter-row { gap:6px; }
      .wk-month-filter-grouphd { min-width:auto; flex-basis:100%; margin-bottom:2px; }
    }
    /* 월간 prev/next 네비게이션 */
    .wk-month-nav { display:flex; align-items:center; justify-content:center; gap:14px; margin-bottom:14px; }
    .wk-month-nav-btn { padding:6px 14px; min-width:44px; min-height:36px; border:1px solid #E8E0D8; background:#fff; color:#5F4E3F; border-radius:8px; font-size:0.95rem; cursor:pointer; font-family:inherit; font-weight:600; transition:all 0.12s; }
    .wk-month-nav-btn:hover { background:#FAF6F1; border-color:#A8724A; color:#A8724A; }
    .wk-month-nav-title { font-size:1.05rem; font-weight:800; color:#2C2420; min-width:130px; text-align:center; letter-spacing:0.3px; }
    .wk-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); border-top:0.5px solid #E8E0D8; border-left:0.5px solid #E8E0D8; }
    .wk-cal-dow { text-align:center; font-size:11px; font-weight:600; color:#718096; padding:5px 0; background:#FAFAF8; border-right:0.5px solid #E8E0D8; border-bottom:0.5px solid #E8E0D8; }
    .wk-cal-dow:first-child { color:#E24B4A; }
    .wk-cal-dow:nth-child(7) { color:#4f8ef7; }
    .wk-cal-day { min-height:76px; padding:3px; border-right:0.5px solid #E8E0D8; border-bottom:0.5px solid #E8E0D8; background:#fff; }
    .wk-cal-day.other-m { background:#FAFAF8; opacity:0.45; }
    .wk-cal-daynum { font-size:11px; font-weight:600; color:#718096; margin-bottom:2px; display:inline-block; }
    .wk-cal-daynum.today-d { background:#A8724A; color:#fff; border-radius:50%; width:18px; height:18px; display:inline-flex; align-items:center; justify-content:center; }
    .wk-cal-daynum.sun-d { color:#E24B4A; }
    .wk-cal-daynum.sat-d { color:#4f8ef7; }
    .wk-cal-bars { display:flex; flex-direction:column; gap:1px; }
    .wk-cal-bar { font-size:9px; padding:1px 3px; border-radius:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:14px; }
    .wk-cal-bar.bar-hidden { display:none; }
    /* ── 하단 탭 ── */
    .wk-btm-tabs { display:flex; gap:0; margin:14px 0 0; border-bottom:2px solid #E8E0D8; }
    .wk-btm-tab { padding:7px 16px; border:0.5px solid #E8E0D8; border-bottom:none; background:#F8F6F3; color:#8B7B72; font-size:0.82rem; font-weight:600; cursor:pointer; border-radius:7px 7px 0 0; margin-right:4px; transition:background 0.15s; min-height:36px; }
    .wk-btm-tab.active { background:#fff; color:#2C2420; font-weight:700; border-color:#E8E0D8; border-bottom:2px solid #fff; margin-bottom:-2px; }
    .wk-btm-tab:not(.active):hover { background:#F0EBE5; }
    @media (max-width:768px) {
      .wk-top-grid { grid-template-columns:1fr; }
      .wk-btm-tab { padding:8px 12px; font-size:0.79rem; }
    }

    /* ── 주간 배정 탭 ── */
    .weekly-header { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:16px; background:#fff; border-radius:10px; padding:12px 16px; box-shadow:0 1px 4px rgba(0,0,0,0.06); }
    .weekly-week-label { font-size:0.95rem; font-weight:700; color:#2d3748; flex:1; }
    .weekly-save-btn { padding:8px 20px; background:#4f8ef7; color:#fff; border:none; border-radius:8px; cursor:pointer; font-size:0.88rem; font-weight:700; min-height:44px; }
    .weekly-save-btn:hover { background:#3b7de8; }
    .weekly-section-title { font-size:0.88rem; font-weight:700; color:#4a5568; margin:16px 0 6px; }
    .weekly-table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:16px; border:1px solid #E8E0D8; }
    .weekly-table { width:100%; border-collapse:collapse; font-size:0.82rem; min-width:420px; }
    .weekly-table th { background:#A8724A; padding:10px 8px; text-align:center; font-weight:700; color:#fff; border-bottom:2px solid #8a5630; border-right:1px solid rgba(255,255,255,0.15); white-space:nowrap; }
    .weekly-table th.lh { text-align:left; padding-left:14px; }
    .weekly-table td { padding:8px 7px; border-bottom:1px solid #f0f4f8; border-right:1px solid #e8ecf1; vertical-align:middle; }
    .weekly-table td.name-cell { font-weight:700; color:#2C2420; background:#F8F6F3; white-space:nowrap; padding:8px 14px; min-width:100px; }
    .weekly-table td.center-cell { text-align:center; }
    .mgr-toggle { display:block; width:100%; padding:6px 4px; border-radius:8px; border:none; font-size:0.82rem; cursor:pointer; font-weight:700; min-height:44px; transition:background 0.15s; }
    .mgr-toggle.on  { background:#A8724A; color:#fff; }
    .mgr-toggle.off { background:#FFF0F0; color:#E85555; }
    .vac-badge { display:inline-block; background:#fef3c7; color:#92400e; border-radius:7px; padding:5px 8px; font-size:0.78rem; font-weight:700; min-height:38px; line-height:2; width:100%; text-align:center; }
    .weekly-count-badge { display:inline-block; background:#dbeafe; color:#1e40af; border-radius:8px; padding:2px 8px; font-size:0.75rem; font-weight:700; margin-bottom:3px; }
    .weekly-cleaner-select { width:100%; padding:5px 4px; border:1px solid #e2e8f0; border-radius:6px; font-size:0.78rem; font-family:inherit; min-height:36px; background:#fff; }
    .weekly-today-col { background:#fffde7 !important; }
    .staff-mgmt { background:#f7fafc; border-radius:10px; padding:12px 16px; margin-bottom:10px; border:1px solid #e2e8f0; }
    .staff-mgmt summary { cursor:pointer; font-weight:700; font-size:0.88rem; color:#4a5568; user-select:none; list-style:none; }
    .staff-mgmt-row { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:8px; margin-top:8px; }
    .staff-chip { display:inline-flex; align-items:center; gap:4px; background:#e2e8f0; border-radius:20px; padding:3px 10px 3px 12px; font-size:0.82rem; font-weight:600; color:#2d3748; }
    .staff-chip button { background:none; border:none; cursor:pointer; color:#a0aec0; font-size:0.9rem; padding:0 2px; line-height:1; }
    .staff-chip button:hover { color:#e53e3e; }
    .staff-add-row { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
    .staff-add-input { padding:6px 10px; border:1px solid #e2e8f0; border-radius:7px; font-size:0.84rem; font-family:inherit; width:130px; min-height:36px; }
    .staff-add-btn { padding:6px 14px; background:#4f8ef7; color:#fff; border:none; border-radius:7px; cursor:pointer; font-size:0.83rem; font-weight:700; min-height:36px; }
    .vac-item { display:flex; align-items:center; gap:8px; background:#fefce8; border:1px solid #fde68a; border-radius:8px; padding:8px 12px; margin-bottom:6px; font-size:0.83rem; flex-wrap:wrap; }
    .vac-item-info { flex:1; min-width:160px; }
    .vac-del-btn { background:none; border:1px solid #fca5a5; color:#dc2626; border-radius:6px; padding:3px 10px; cursor:pointer; font-size:0.78rem; font-weight:700; min-height:32px; }
    .vac-type-badge { display:inline-block; padding:1px 8px; border-radius:11px; font-size:0.7rem; font-weight:700; border:1px solid; margin-right:4px; vertical-align:middle; }
    .vac-badge-default { background:#F3F4F6; color:#4B5563; border-color:#D1D5DB; }
    .vac-badge-annual  { background:#FEE2E2; color:#991B1B; border-color:#FCA5A5; }
    .vac-badge-half    { background:#FEF3C7; color:#92400E; border-color:#F4D89F; }
    .vac-approval-badge { display:inline-block; padding:1px 8px; border-radius:11px; font-size:0.68rem; font-weight:700; background:#E5E7EB; color:#4B5563; border:1px solid #D1D5DB; margin-right:4px; vertical-align:middle; }
    .vac-del-locked { background:#F8F6F3 !important; color:#A0957F !important; cursor:help !important; border-color:#E5E7EB !important; }
    .vac-form { display:flex; gap:8px; flex-wrap:wrap; align-items:flex-end; margin-top:10px; background:#fff; border:1px solid #e2e8f0; border-radius:9px; padding:12px; }
    .vac-form-field { display:flex; flex-direction:column; gap:3px; }
    .vac-form-field label { font-size:0.75rem; font-weight:600; color:#4a5568; }
    .vac-form-field input, .vac-form-field select { padding:6px 9px; border:1px solid #e2e8f0; border-radius:6px; font-size:0.83rem; font-family:inherit; min-height:38px; }
    .vac-form-field select { min-width:100px; }
    .vac-form-field input[type=date] { min-width:130px; }
    .vac-add-btn { padding:7px 16px; background:#48bb78; color:#fff; border:none; border-radius:7px; cursor:pointer; font-size:0.83rem; font-weight:700; min-height:38px; align-self:flex-end; }
    .vac-on-cell { background:repeating-linear-gradient(45deg,#fef3c7,#fef3c7 4px,#fff 4px,#fff 10px) !important; }
    .weekly-attend-on  { display:inline-block; background:#dbeafe; color:#1d4ed8; border-radius:7px; padding:4px 8px; font-size:0.78rem; font-weight:700; }
    .weekly-attend-off { display:inline-block; background:#f1f5f9; color:#94a3b8; border-radius:7px; padding:4px 8px; font-size:0.78rem; font-weight:700; }
    @media (max-width:768px) {
      .weekly-table { font-size:0.74rem; min-width:430px; }
      .wa-add-select { font-size:0.7rem; }
      .vac-form { flex-direction:column; }
      .weekly-header { padding:10px 12px; }
    }
    /* ── 가이드 박스 ── */
    .guide-box { background:#f0f9ff; border:1px solid #bae6fd; border-radius:10px; margin-bottom:12px; }
    .guide-box summary { cursor:pointer; font-weight:700; font-size:0.84rem; color:#0369a1; padding:10px 14px; user-select:none; list-style:none; }
    .guide-table { width:100%; border-collapse:collapse; font-size:0.79rem; color:#1e3a5f; }
    .guide-table td { padding:6px 10px; border-bottom:1px solid #e0f2fe; vertical-align:top; line-height:1.5; }
    .guide-table td:first-child { font-weight:700; white-space:nowrap; width:110px; color:#0369a1; }
    .guide-table tr:last-child td { border-bottom:none; }
    /* ── 매니저 업무시간 ── */
    .mgr-hours-text { display:block; font-size:0.68rem; color:#94a3b8; font-weight:400; margin-top:2px; }
    .mgr-hours-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:8px; margin-top:8px; }
    .mgr-hours-row { display:flex; align-items:center; gap:6px; background:#f7fafc; border:1px solid #e2e8f0; border-radius:8px; padding:7px 10px; font-size:0.82rem; }
    .mgr-hours-name { font-weight:700; color:#2d3748; min-width:44px; }
    /* VIP 매니저 (송윤호, 송지호) 강조 - 테라코타 */
    .mgr-row-vip td.name-cell { background:#FFF8F5; color:#A8724A; }
    .mgr-row-vip .mgr-toggle.on  { background:#A8724A; color:#fff; border:none; }
    .mgr-row-vip .mgr-toggle.off { background:#FFF0F0; color:#E85555; }
    .mgr-row-vip .vac-badge { background:#F5EDE4; color:#A8724A; }
    .mgr-hours-row.mgr-hours-vip { background:#F5EDE4; border-color:#A8724A; }
    .mgr-hours-row.mgr-hours-vip .mgr-hours-name { color:#5c3317; }
    .mgr-hours-sep { color:#a0aec0; font-size:0.78rem; }
    .mgr-hours-select { border:1px solid #e2e8f0; border-radius:5px; font-size:0.76rem; padding:2px 3px; font-family:inherit; background:#fff; min-height:30px; }
    /* ── 매니저 기본 근무 패턴 ── */
    .apply-notice { font-size:0.78rem; color:#744210; background:#FFFBEB; border:1px solid #FCD34D; border-radius:8px; padding:8px 12px; margin-bottom:12px; }
    .pattern-card { background:#fff; border:1px solid #e2e8f0; border-radius:10px; padding:12px 14px; margin-bottom:10px; }
    .pattern-card.pattern-vip { border-color:#A8724A; background:#FFF8F3; }
    .pattern-card-name { font-weight:700; font-size:0.88rem; color:#2d3748; margin-bottom:8px; }
    .pattern-card.pattern-vip .pattern-card-name { color:#A8724A; }
    .day-chips { display:flex; gap:5px; flex-wrap:wrap; margin-bottom:8px; }
    .day-chip { display:inline-block; padding:3px 9px; border-radius:20px; font-size:0.72rem; font-weight:600; cursor:pointer; border:1px solid #e2e8f0; background:#f7fafc; color:#a0aec0; user-select:none; transition:all 0.12s; }
    .day-chip.on { background:#D1E7D7; color:#2D6A4F; border-color:#9ECDB0; }
    .pattern-time-row { display:flex; align-items:center; gap:6px; font-size:0.8rem; margin-bottom:8px; flex-wrap:wrap; }
    .pattern-time-row label { color:#718096; font-size:0.75rem; }
    .pattern-time-sel { border:1px solid #e2e8f0; border-radius:5px; font-size:0.76rem; padding:2px 3px; font-family:inherit; background:#fff; }
    .pattern-btns { display:flex; gap:6px; flex-wrap:wrap; }
    .apply-btn  { background:#A8724A; color:#fff; border:none; border-radius:7px; padding:5px 14px; font-size:0.78rem; font-weight:700; cursor:pointer; font-family:inherit; }
    .apply-btn:hover { background:#8a5c38; }
    .save-pat-btn { background:#4a5568; color:#fff; border:none; border-radius:7px; padding:5px 14px; font-size:0.78rem; font-weight:600; cursor:pointer; font-family:inherit; }
    .save-pat-btn:hover { background:#2d3748; }
    /* ── 특수 일정 ── */
    .se-item { display:flex; align-items:center; gap:8px; background:#f0fdf4; border:1px solid #bbf7d0; border-radius:8px; padding:7px 12px; margin-bottom:6px; font-size:0.83rem; flex-wrap:wrap; }
    .se-del-btn { background:none; border:1px solid #fca5a5; color:#dc2626; border-radius:6px; padding:3px 10px; cursor:pointer; font-size:0.78rem; font-weight:700; min-height:28px; margin-left:auto; }
    /* ── 저장 시각 ── */
    .weekly-saved-at { font-size:0.74rem; color:#94a3b8; }
    /* ── 추가 청소 ── */
    .extra-room-badge { display:inline-block; background:#fee2e2; color:#b91c1c; border-radius:8px; padding:1px 6px; font-size:0.72rem; font-weight:700; margin-left:3px; }
    .extra-room-row { display:flex; align-items:center; gap:4px; margin-top:2px; }
    .extra-room-note { font-size:0.67rem; color:#b91c1c; }
    .er-del-btn { background:none; border:none; cursor:pointer; color:#fca5a5; font-size:0.72rem; padding:0; line-height:1; }
    .er-del-btn:hover { color:#dc2626; }
    .extra-add-btn { display:block; width:100%; margin-top:5px; padding:3px 0; background:none; border:1px dashed #cbd5e0; border-radius:5px; font-size:0.68rem; color:#94a3b8; cursor:pointer; transition:all 0.15s; }
    .extra-add-btn:hover { border-color:#4f8ef7; color:#4f8ef7; }
    /* ── 추가 청소 모달 ── */
    .extra-modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.32); z-index:9999; align-items:center; justify-content:center; }
    .extra-modal-overlay.open { display:flex; }
    .extra-modal { background:#fff; border-radius:12px; padding:22px; width:340px; max-width:90vw; box-shadow:0 8px 32px rgba(0,0,0,0.16); }
    .extra-modal h3 { font-size:0.95rem; font-weight:700; margin-bottom:14px; color:#1a202c; }
    .extra-modal label { font-size:0.78rem; font-weight:600; color:#4a5568; display:block; margin-bottom:4px; margin-top:10px; }
    .extra-modal label:first-of-type { margin-top:0; }
    .extra-modal input { width:100%; border:1px solid #e2e8f0; border-radius:7px; padding:8px 10px; font-size:0.85rem; font-family:inherit; outline:none; }
    .extra-modal input:focus { border-color:#4f8ef7; }
    .extra-modal-btns { display:flex; gap:8px; justify-content:flex-end; margin-top:16px; }
    .extra-modal-btns button { padding:8px 18px; border-radius:7px; border:none; cursor:pointer; font-size:0.85rem; font-weight:700; min-height:38px; }
    .extra-modal-confirm { background:#4f8ef7; color:#fff; }
    .extra-modal-cancel  { background:#e2e8f0; color:#4a5568; }
    /* ── 다중 직원 선택 ── */
    .wa-multi { display:flex; flex-direction:column; gap:4px; margin-top:4px; }
    .wa-chips { display:flex; flex-wrap:wrap; gap:3px; min-height:14px; }
    .wa-chip { display:inline-flex; align-items:center; gap:2px; background:#dbeafe; color:#1e40af; border-radius:12px; padding:2px 7px 2px 9px; font-size:0.72rem; font-weight:700; white-space:nowrap; }
    .wa-chip button { background:none; border:none; cursor:pointer; color:#93c5fd; font-size:0.78rem; padding:0 1px; line-height:1; margin-left:1px; }
    .wa-chip button:hover { color:#dc2626; }
    .wa-chip-personal { background:#fef3c7; color:#92400e; }
    .wa-add-select { width:100%; padding:3px; border:1px solid #e2e8f0; border-radius:6px; font-size:0.74rem; font-family:inherit; min-height:28px; background:#fff; cursor:pointer; }
    /* ── 청소스태프 개인 일정 ── */
    .ps-item { display:flex; align-items:center; gap:8px; background:#fffbeb; border:1px solid #fde68a; border-radius:8px; padding:7px 12px; margin-bottom:6px; font-size:0.83rem; flex-wrap:wrap; }
    .ps-del-btn { background:none; border:1px solid #fca5a5; color:#dc2626; border-radius:6px; padding:3px 10px; cursor:pointer; font-size:0.78rem; font-weight:700; min-height:30px; }

    /* ── 주간 탭 개선 ── */
    .wk-outer { max-width:1100px; margin:0 auto; }
    .wk-section-bar { display:flex; align-items:center; gap:8px; font-size:0.92rem; font-weight:800; color:#2C2420; margin:22px 0 8px; }
    .wk-section-bar::before { content:''; display:inline-block; width:3px; height:1.1em; background:#A8724A; border-radius:2px; flex-shrink:0; }
    .wk-section-bar small { font-size:0.74rem; color:#a0aec0; font-weight:400; }
    .wk-staff-badge { display:inline-flex; align-items:center; gap:3px; border-radius:20px; padding:3px 10px; font-size:0.76rem; font-weight:700; white-space:nowrap; }
    .wk-no-assign { font-size:0.74rem; color:#cbd5e0; }
    .wk-cnt-num { font-size:1rem; font-weight:800; color:#2C2420; line-height:1.2; }
    .wk-cnt-unit { font-size:0.72rem; color:#718096; margin-left:1px; }
    /* Cleaner card grid */
    .wk-cleaner-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px; margin-top:10px; width:100%; }
    .wk-cleaner-card { background:#fff; border:1px solid #E8E0D8; border-radius:12px; padding:12px 14px; box-shadow:0 1px 3px rgba(0,0,0,0.04); }
    .wk-cleaner-card-name { font-weight:700; font-size:0.84rem; color:#2C2420; margin-bottom:8px; padding-bottom:6px; border-bottom:2px solid #F0EBE5; }
    .wk-cleaner-day { display:flex; align-items:flex-start; justify-content:space-between; font-size:0.74rem; padding:3px 0; gap:4px; }
    .wk-cleaner-day-label { color:#718096; white-space:nowrap; }
    .wk-cleaner-day-on  { color:#276749; font-weight:700; }
    .wk-cleaner-day-off { color:#E2E8F0; font-size:0.68rem; }
    .wk-prop-badge { display:inline-block; background:#F5EDE6; color:#A8724A; border-radius:6px; padding:1px 5px; font-size:0.68rem; font-weight:700; margin:1px; }
    /* Avail section in weekly tab */
    .wk-avail-card { background:#fff; border:1px solid #E8E0D8; border-radius:16px; padding:16px 18px; margin-top:8px; box-shadow:0 1px 4px rgba(0,0,0,0.04); }
    .wk-av-tbl { width:100%; border-collapse:collapse; font-size:0.82rem; }
    .wk-av-tbl th { background:#2C2420; color:#F5EDE6; padding:8px 10px; text-align:center; font-size:0.76rem; font-weight:700; border-right:1px solid #4a3528; white-space:nowrap; }
    .wk-av-tbl th:first-child { text-align:left; min-width:84px; border-right:1px solid #4a3528; }
    .wk-av-tbl th.wk-av-peak { background:#A8724A; color:#fff; }
    .wk-av-tbl td { padding:7px 8px; text-align:center; border-bottom:1px solid #f0f4f8; }
    .wk-av-tbl td:first-child { text-align:left; font-weight:700; color:#2C2420; background:#F8F6F3; }
    .wk-av-ok { background:#E8F5E9; color:#276749; font-size:0.95rem; }
    .wk-av-no { background:#FFF3F3; color:#E53E3E; font-size:0.82rem; }
    .wk-av-dash { background:#f8f9fa; color:#cbd5e0; font-size:0.8rem; }
    .wk-av-cnt-row td { font-size:0.76rem; font-weight:800; background:#F8F6F3; padding-top:6px; padding-bottom:6px; border-bottom:none; border-top:2px solid #E8E0D8; color:#2C2420; }
    .wk-av-cnt-ok { color:#276749; }
    .wk-av-cnt-zero { color:#cbd5e0; }
    @media (max-width:1024px) { .weekly-table { min-width:600px; } }
    @media (max-width:600px) { .wk-cleaner-grid { grid-template-columns:repeat(2,1fr); } }
    /* ── Staff Card (staff.html 동일 스타일) ── */
    .wk-sc-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:12px; margin-top:12px; }
    .wk-sc-card { background:#fff; border-radius:12px; border:1px solid #E8E0D8; padding:14px 14px 12px; box-shadow:0 1px 3px rgba(0,0,0,0.04); }
    .wk-sc-name { font-size:0.93rem; font-weight:700; color:#2C2420; margin-bottom:10px; padding-bottom:8px; border-bottom:1px solid #F0EBE5; }
    .wk-sc-days { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
    .wk-sc-day { display:flex; flex-direction:column; align-items:center; gap:3px; }
    .wk-sc-day-lbl { font-size:0.6rem; font-weight:600; color:#8B7B72; text-align:center; line-height:1.35; white-space:nowrap; }
    .wk-sc-badge { display:block; width:100%; border-radius:6px; padding:3px 1px; font-size:0.63rem; font-weight:700; text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; line-height:1.35; min-height:20px; }
    .wk-sc-on  { background:#dbeafe; color:#1d4ed8; }
    .wk-sc-off { background:#fee2e2; color:#b91c1c; }
    .wk-sc-vac { background:#fef3c7; color:#92400e; }
    .wk-sc-prop { display:block; width:100%; border-radius:5px; padding:2px 1px; font-size:0.57rem; font-weight:700; text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-top:2px; line-height:1.3; }
    .wk-pb-hae  { background:#dbeafe; color:#1e40af; }
    .wk-pb-dang { background:#dcfce7; color:#166534; }
    .wk-pb-hai  { background:#e0f2fe; color:#0369a1; }
    .wk-pb-wids { background:#ede9fe; color:#6d28d9; }
    .wk-pb-sang { background:#fef3c7; color:#92400e; }
    @media (max-width:768px) { .wk-sc-grid { grid-template-columns:1fr; } }
    @media (max-width:600px) { .wk-sc-grid { grid-template-columns:repeat(2,1fr); } }

    /* ════════ 업무일지 관리 탭 ════════ */
    .wla-card { background:#fff; border:1px solid #e2e8f0; border-radius:12px; padding:18px 20px; margin-bottom:16px; box-shadow:0 1px 4px rgba(0,0,0,0.04); }
    .wla-hd   { font-size:1rem; font-weight:700; color:#2d3748; margin-bottom:14px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
    .wla-date-nav { display:flex; align-items:center; gap:8px; }
    .wla-nav-btn  { background:#f7fafc; border:1px solid #e2e8f0; border-radius:6px; padding:5px 12px; cursor:pointer; font-size:0.82rem; font-family:inherit; }
    .wla-nav-btn:hover { background:#edf2f7; }
    .wla-person-row { display:flex; align-items:flex-start; gap:10px; background:#f7fafc; border-radius:8px; padding:12px 14px; margin-bottom:8px; flex-wrap:wrap; }
    .wla-person-name { font-weight:700; font-size:0.9rem; min-width:80px; color:#2d3748; }
    .wla-entry-info  { flex:1; font-size:0.85rem; color:#4a5568; line-height:1.6; }
    .wla-approve-btn { background:#A8724A; color:#fff; border:none; border-radius:8px; padding:6px 16px; font-size:0.82rem; font-weight:700; cursor:pointer; min-height:36px; font-family:inherit; flex-shrink:0; }
    .wla-approve-btn:hover { background:#8a5c38; }
    .wla-unapprove-btn { background:#fff; color:#A8724A; border:1.5px solid #A8724A; border-radius:8px; padding:4px 12px; font-size:0.78rem; font-weight:700; cursor:pointer; font-family:inherit; }
    .wla-unapprove-btn:hover { background:#FBF0E8; }
    .wla-badge-p { display:inline-block; background:#ED8936; color:#fff; border-radius:10px; padding:2px 10px; font-size:0.72rem; font-weight:700; }
    .wla-badge-a { display:inline-block; background:#48BB78; color:#fff; border-radius:10px; padding:2px 10px; font-size:0.72rem; font-weight:700; }
    .wla-unsubmitted { font-size:0.82rem; color:#a0aec0; padding:6px 0; }
    /* 급여 집계 테이블 */
    .wla-pay-tbl { width:100%; border-collapse:collapse; font-size:0.82rem; }
    .wla-pay-tbl th { background:#f7fafc; padding:8px 10px; text-align:left; border-bottom:2px solid #e2e8f0; color:#4a5568; font-weight:700; white-space:nowrap; }
    .wla-pay-tbl td { padding:8px 10px; border-bottom:1px solid #f0f4f8; vertical-align:top; white-space:nowrap; }
    .wla-pay-tbl tr:last-child td { border-bottom:none; }
    .wla-pay-tbl .wla-total-row { background:#F5EDE4; font-weight:700; }
    .wla-milestone { color:#A8724A; font-weight:700; }
    .wla-csv-btn  { background:#4a5568; color:#fff; border:none; border-radius:8px; padding:8px 18px; font-size:0.82rem; font-weight:700; cursor:pointer; font-family:inherit; margin-top:12px; }
    /* ── 업무일지 캘린더 뷰 ── */
    .wla-cal-card { background:#fff; border:1px solid #e2e8f0; border-radius:12px; margin-bottom:16px; overflow:hidden; box-shadow:0 1px 4px rgba(0,0,0,0.04); }
    .wla-cal-header { background:#A8724A; color:#fff; padding:12px 16px; display:flex; align-items:center; justify-content:space-between; }
    .wla-cal-title  { font-size:1rem; font-weight:700; }
    .wla-cal-nav    { background:rgba(255,255,255,0.2); border:none; color:#fff; border-radius:6px; padding:4px 12px; font-size:0.85rem; cursor:pointer; font-family:inherit; }
    .wla-cal-nav:hover { background:rgba(255,255,255,0.35); }
    .wla-cal-legend { display:flex; gap:12px; font-size:0.72rem; color:#4a5568; padding:8px 16px; border-bottom:1px solid #f0f4f8; flex-wrap:wrap; }
    .wla-cal-legend-item { display:flex; align-items:center; gap:4px; }
    .wla-cal-filter { padding:8px 16px; border-bottom:1px solid #f0f4f8; display:flex; align-items:center; gap:8px; font-size:0.82rem; color:#4a5568; flex-wrap:wrap; background:#fafafa; }
    .wla-cal-filter label { font-weight:600; color:#2d3748; }
    .wla-cal-filter select { padding:6px 10px; border:1px solid #e2e8f0; border-radius:6px; font-size:0.85rem; font-family:inherit; background:#fff; min-height:36px; flex:1 1 auto; max-width:280px; cursor:pointer; }
    .wla-cal-filter .wla-filter-clear { background:transparent; border:none; color:#718096; cursor:pointer; font-size:0.78rem; padding:4px 8px; border-radius:4px; }
    .wla-cal-filter .wla-filter-clear:hover { background:#edf2f7; color:#2d3748; }
    .wla-cal-cell.person-no-entry { opacity:0.5; }
    .wla-cal-cell.person-no-entry::after { content:''; position:absolute; top:4px; right:4px; width:6px; height:6px; background:#DC2626; border-radius:50%; z-index:2; pointer-events:none; }
    @media (max-width:768px) {
      .wla-cal-filter select { min-height:44px; max-width:none; width:100%; }
      .wla-cal-filter label { width:100%; }
    }
    .wla-dot-sm { width:8px; height:8px; border-radius:50%; display:inline-block; flex-shrink:0; }
    .wla-dot-approved  { background:#48BB78; }
    .wla-dot-pending   { background:#ED8936; }
    .wla-dot-unsub     { background:#CBD5E0; }
    .wla-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:0; }
    .wla-cal-head { text-align:center; font-size:0.7rem; font-weight:700; color:#718096; padding:6px 0; background:#fafafa; border-bottom:1px solid #f0f4f8; }
    .wla-cal-head:first-child { color:#e53e3e; }
    .wla-cal-head:last-child  { color:#4299e1; }
    .wla-cal-cell { min-height:62px; padding:4px; border-right:0.5px solid #f0f4f8; border-bottom:0.5px solid #f0f4f8; cursor:pointer; transition:background 0.12s; position:relative; box-sizing:border-box; }
    .wla-cal-cell:nth-child(7n) { border-right:none; }
    .wla-cal-cell:hover { background:#FFF8F3; }
    .wla-cal-cell.today { outline:2px solid #A8724A; outline-offset:-2px; border-radius:2px; }
    .wla-cal-cell.selected { background:#F5EDE6; }
    .wla-cal-cell.other-month { opacity:0.35; cursor:default; }
    .wla-cal-cell.before-tracking { cursor:pointer; }
    .wla-cal-cell.before-tracking:hover { background:rgba(0,0,0,0.04); }
    .wla-cal-date { font-size:0.72rem; font-weight:700; color:#2d3748; margin-bottom:3px; }
    .wla-cal-date.sun { color:#e53e3e; }
    .wla-cal-date.sat { color:#4299e1; }
    .wla-cal-dots  { display:flex; flex-wrap:wrap; gap:2px; margin-bottom:2px; }
    .wla-cal-summary { font-size:0.6rem; color:#718096; line-height:1.3; }
    .wla-day-detail-wrap { background:#fff; border:1px solid #e2e8f0; border-radius:12px; margin-bottom:16px; box-shadow:0 1px 4px rgba(0,0,0,0.04); overflow:hidden; }
    .wla-day-detail-hd   { background:#F5EDE6; padding:10px 16px; display:flex; align-items:center; justify-content:space-between; }
    .wla-day-detail-title { font-size:0.9rem; font-weight:700; color:#2d3748; }
    .wla-day-close-btn   { background:none; border:1px solid #CBD5E0; border-radius:6px; padding:3px 10px; font-size:0.8rem; cursor:pointer; color:#718096; font-family:inherit; }
    /* ── 급여 관리 탭 ── */
    .pr-card { background:#fff; border:1px solid #e2e8f0; border-radius:14px; padding:18px 20px; margin-bottom:16px; box-shadow:0 1px 4px rgba(0,0,0,0.04); }
    .pr-hd   { font-size:1rem; font-weight:700; color:#2d3748; margin-bottom:14px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
    .pr-tbl  { width:100%; border-collapse:collapse; font-size:0.82rem; }
    .pr-tbl th { background:#f7fafc; padding:8px 10px; text-align:left; border-bottom:2px solid #e2e8f0; color:#4a5568; font-weight:700; white-space:nowrap; }
    .pr-tbl td { padding:8px 10px; border-bottom:1px solid #f0f4f8; vertical-align:middle; }
    .pr-tbl tr:last-child td { border-bottom:none; }
    .pr-tbl td.num  { text-align:right; font-variant-numeric:tabular-nums; }
    .pr-tbl .pr-total-row { background:#F5EDE4; font-weight:700; }
    .pr-tbl .pr-total-row td { color:#5c3317; }
    .pr-milestone { color:#A8724A; font-size:0.78rem; font-weight:700; }
    .pr-badge-ok  { display:inline-block; background:#48BB78; color:#fff; border-radius:10px; padding:2px 10px; font-size:0.72rem; font-weight:700; }
    .pr-badge-no  { display:inline-block; background:#FC8181; color:#fff; border-radius:10px; padding:2px 10px; font-size:0.72rem; font-weight:700; }
    .pr-badge-late{ display:inline-block; background:#ED8936; color:#fff; border-radius:10px; padding:2px 10px; font-size:0.72rem; font-weight:700; }
    .pr-badge-fin { display:inline-block; background:#A8724A; color:#fff; border-radius:10px; padding:2px 10px; font-size:0.78rem; font-weight:700; }
    .pr-btn       { border:none; border-radius:8px; padding:7px 16px; font-size:0.82rem; font-weight:700; cursor:pointer; font-family:inherit; }
    .pr-btn-primary { background:#A8724A; color:#fff; }
    .pr-btn-primary:hover { background:#8a5c38; }
    .pr-btn-gray  { background:#718096; color:#fff; }
    .pr-btn-gray:hover { background:#4a5568; }
    .pr-btn-green { background:#48BB78; color:#fff; }
    .pr-btn-danger{ background:#e53e3e; color:#fff; }
    .pr-allow-late-form { display:none; margin-top:8px; background:#f7fafc; border-radius:8px; padding:10px 12px; border:1px solid #e2e8f0; }
    .pr-edit-form { display:none; background:#fefce8; border:1px solid #fde68a; border-radius:8px; padding:10px 12px; margin-top:6px; }
    .pr-inp { padding:6px 10px; border:1px solid #e2e8f0; border-radius:6px; font-size:0.85rem; font-family:inherit; background:#fff; outline:none; }
    /* 비용 청구 (급여 탭) */
    .exp-admin-toggle { background:none; border:1px solid #e2e8f0; border-radius:7px; padding:3px 10px; font-size:0.75rem; cursor:pointer; font-family:inherit; color:#4a5568; margin-left:8px; }
    .exp-admin-list { margin-top:8px; border-top:1px solid #e2e8f0; padding-top:8px; }
    .exp-admin-item { display:flex; align-items:center; gap:8px; padding:6px 8px; border-radius:6px; font-size:0.78rem; margin-bottom:4px; background:#f7fafc; flex-wrap:wrap; }
    .exp-admin-item.approved { background:#f0fff4; }
    .exp-admin-item.rejected { background:#fff5f5; opacity:0.7; }
    .exp-admin-date { color:#718096; white-space:nowrap; }
    .exp-admin-desc { flex:1; font-weight:600; color:#2d3748; }
    .exp-admin-amt  { font-weight:700; color:#A8724A; white-space:nowrap; }
    .exp-admin-status { font-size:0.7rem; white-space:nowrap; }
    .exp-approve-btn { background:#48BB78; color:#fff; border:none; border-radius:5px; padding:2px 8px; cursor:pointer; font-size:0.72rem; font-family:inherit; }
    .exp-reject-btn  { background:#FC8181; color:#fff; border:none; border-radius:5px; padding:2px 8px; cursor:pointer; font-size:0.72rem; font-family:inherit; }
    .pr-inp:focus { border-color:#A8724A; }
    @media (max-width:768px) {
      .pr-tbl { font-size:0.73rem; }
      .pr-tbl th, .pr-tbl td { padding:6px 6px; }
    }
    /* ── 통합 급여 관리 표 ── */
    .pru-toolbar { display:flex; align-items:center; gap:10px; margin-bottom:14px; flex-wrap:wrap; }
    .pru-title { font-size:1rem; font-weight:700; color:#2C2420; display:flex; align-items:center; gap:6px; }
    .pru-month-select { padding:5px 10px; border:1px solid #E8E0D8; border-radius:6px; font-size:0.82rem; font-family:inherit; background:#fff; }
    .pru-meta-bar { display:flex; gap:14px; align-items:center; padding:9px 12px; background:#FFF8E7; border:1px solid #F4E1B8; border-radius:8px; margin-bottom:14px; font-size:0.8rem; color:#78350F; flex-wrap:wrap; }
    .pru-meta-bar .meta-item { display:flex; align-items:center; gap:4px; }
    .pru-meta-bar .meta-item b { color:#92400E; font-weight:700; }
    .pru-tag { display:inline-block; padding:2px 8px; border-radius:4px; font-size:0.74rem; font-weight:600; }
    .pru-tag-draft { background:#FEF3C7; border:1px solid #F4E1B8; color:#78350F; }
    .pru-tag-final { background:#DEF7EC; border:1px solid #9DDFB4; color:#03543F; }
    .pru-tag-archive { background:#F0EBE5; border:1px solid #D0C8BC; color:#5F4E3F; }
    .pru-ts { color:#A0957F; font-size:0.72rem; }
    .pru-meta-bar .right-action { margin-left:auto; padding:3px 9px; background:#fff; border:1px solid #D0C8BC; color:#A8724A; border-radius:4px; font-size:0.7rem; cursor:pointer; font-weight:600; font-family:inherit; }
    .pru-table { width:100%; border-collapse:collapse; font-size:0.78rem; }
    .pru-table th { background:#F5F1EC; color:#8B7355; font-weight:600; padding:8px 8px; text-align:left; border-bottom:1px solid #E8E0D8; font-size:0.7rem; letter-spacing:0.02em; white-space:nowrap; }
    .pru-table th.num { text-align:right; }
    .pru-table td { padding:7px 8px; border-bottom:1px solid #F0EBE5; vertical-align:middle; }
    .pru-table td.num { text-align:right; font-variant-numeric: tabular-nums; }
    .pru-table tr:hover td:not(.group-hdr) { background:#FBF8F4; }
    .pru-group-hdr { background:linear-gradient(to right, #EFEBE5 0%, #F5F1EC 60%, transparent 100%) !important; padding:8px 12px !important; font-weight:700; color:#5F4E3F; letter-spacing:0.04em; font-size:0.74rem; }
    .pru-group-hdr small { font-weight:500; color:#8B7355; margin-left:6px; font-size:0.66rem; }
    .pru-group-hdr .add-btn { float:right; padding:2px 9px; background:#fff; border:1px solid #D0C8BC; color:#A8724A; border-radius:4px; font-size:0.66rem; cursor:pointer; font-weight:600; font-family:inherit; }
    .pru-name-cell { font-weight:600; color:#2C2420; white-space:nowrap; }
    .pru-submit-yes { display:inline-flex; align-items:center; gap:3px; padding:2px 7px; background:#DEF7EC; color:#03543F; border-radius:10px; font-size:0.7rem; font-weight:600; }
    .pru-submit-no { display:inline-flex; align-items:center; gap:3px; padding:2px 7px; background:#FEE2E2; color:#9B2C2C; border-radius:10px; font-size:0.7rem; font-weight:600; }
    .pru-submit-late { display:inline-flex; align-items:center; gap:3px; padding:2px 7px; background:#FEF3C7; color:#92400E; border-radius:10px; font-size:0.7rem; font-weight:600; }
    .pru-submit-na { color:#A0957F; font-size:0.7rem; font-style:italic; }
    .pru-type-tag { display:inline-block; padding:1px 6px; border-radius:3px; font-size:0.68rem; font-weight:600; white-space:nowrap; }
    /* 지급방식 — 현금 강조 */
    .pru-cash-badge { display:inline-block; padding:2px 9px; background:#FFEDD5; color:#9A3412; border:1px solid #FED7AA; border-radius:10px; font-size:0.72rem; font-weight:700; }
    /* 직원 상태 (pending/resigned) — 행 흐리기 + 배지 */
    .pru-status-row { opacity:0.55; }
    .pru-status-row td { background:#F8F6F3; }
    .pru-status-badge { display:inline-flex; align-items:center; gap:3px; padding:2px 7px; border-radius:10px; font-size:0.7rem; font-weight:600; white-space:nowrap; }
    .pru-status-pending  { background:#E2E8F0; color:#475569; }
    .pru-status-resigned { background:#F3D7DB; color:#7B1F2B; }
    .pru-type-fixed { background:#EFE3D5; color:#5F4E3F; }
    .pru-type-hourly { background:#E0F0E5; color:#3A6B47; }
    .pru-adj-tag { display:inline-block; padding:1px 5px; background:#EFF6FF; color:#1E40AF; border-radius:3px; font-size:0.7rem; font-weight:500; }
    .pru-adj-empty { color:#A0957F; font-size:0.7rem; }
    .pru-row-edit-btn { padding:3px 8px; background:#fff; border:1px solid #D0C8BC; color:#5F4E3F; border-radius:4px; font-size:0.68rem; cursor:pointer; font-weight:500; font-family:inherit; }
    .pru-row-late-btn { padding:3px 8px; background:#fff; border:1px solid #F4D89F; color:#A47410; border-radius:4px; font-size:0.68rem; cursor:pointer; font-weight:500; font-family:inherit; }
    .pru-anon-row td:not(.group-hdr) { background:#FAF7F0; }
    .pru-total-row td { padding:11px 8px !important; font-weight:700; background:#F5F1EC !important; border-top:2px solid #D0C8BC; font-size:0.84rem; color:#2C2420; }
    .pru-total-row td.num { color:#A8724A; font-size:0.95rem; }
    .pru-footer { display:flex; gap:8px; margin-top:14px; padding-top:14px; border-top:1px dashed #E8E0D8; align-items:center; flex-wrap:wrap; }
    .pru-footer .right { margin-left:auto; display:flex; gap:8px; }
    /* 시급 룰 박스 */
    .pru-rule-box { background:#FFF8E7; border:1px solid #F4E1B8; border-radius:8px; padding:10px 14px; margin-bottom:12px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:0.78rem; color:#78350F; }
    .pru-rule-box label { color:#92400E; font-weight:600; }
    .pru-rule-box input { width:70px; padding:3px 6px; border:1px solid #E8C078; border-radius:4px; font-size:0.78rem; text-align:right; background:#fff; font-family:inherit; }
    .pru-rule-box .save-rule-btn { padding:3px 10px; background:#A8724A; color:#fff; border:none; border-radius:4px; font-size:0.72rem; cursor:pointer; font-weight:600; margin-left:auto; font-family:inherit; }
    /* 접이식 (직원 급여 설정) */
    .pru-collapsible { background:#FAFAF9; border:1px solid #E8E0D8; border-radius:10px; }
    .pru-collapsible-toggle { width:100%; text-align:left; padding:12px 18px; background:none; border:none; cursor:pointer; font-size:0.88rem; font-weight:700; color:#5F4E3F; font-family:inherit; display:flex; justify-content:space-between; align-items:center; }
    .pru-collapsible-toggle small { font-weight:500; color:#A0957F; font-size:0.72rem; margin-left:6px; }
    .pru-collapsible-body { padding:0 18px 18px; }
    /* 직원 설정 인라인 표 */
    .pru-cfg-table { width:100%; border-collapse:collapse; font-size:0.74rem; }
    .pru-cfg-table th { background:#F5F1EC; color:#8B7355; font-weight:600; padding:7px 6px; text-align:left; border-bottom:1px solid #E8E0D8; font-size:0.68rem; letter-spacing:0.02em; white-space:nowrap; }
    .pru-cfg-table td { padding:5px 6px; border-bottom:1px solid #F0EBE5; vertical-align:middle; }
    .pru-cfg-input { width:100%; padding:3px 5px; border:1px solid #E8E0D8; border-radius:4px; font-size:0.72rem; background:#fff; font-family:inherit; box-sizing:border-box; }
    .pru-cfg-input[type="number"] { text-align:right; }
    .pru-cfg-select { width:100%; padding:3px 5px; border:1px solid #E8E0D8; border-radius:4px; font-size:0.72rem; background:#fff; font-family:inherit; box-sizing:border-box; }
    .pru-cfg-add { padding:1px 6px; background:#fff; border:1px solid #D0C8BC; color:#A8724A; border-radius:4px; font-size:0.66rem; cursor:pointer; font-family:inherit; }
    .pru-cfg-save { padding:3px 8px; background:#A8724A; color:#fff; border:none; border-radius:4px; font-size:0.68rem; cursor:pointer; font-weight:600; font-family:inherit; }
    .pru-cfg-del { padding:3px 6px; background:#fff; color:#9B2C2C; border:1px solid #FECACA; border-radius:4px; font-size:0.66rem; cursor:pointer; font-family:inherit; }
    .pru-auto-rate { color:#A0957F; font-size:0.68rem; padding:3px 6px; text-align:right; }
    .pru-auto-rate-up { color:#16A34A; font-weight:600; }
    .pru-yn-toggle { display:inline-flex; border:1px solid #E8E0D8; border-radius:4px; overflow:hidden; background:#fff; }
    .pru-yn-toggle button { padding:2px 7px; border:none; background:transparent; font-size:0.66rem; cursor:pointer; color:#8B7355; font-family:inherit; }
    .pru-yn-toggle button.on { background:#A8724A; color:#fff; font-weight:600; }
    /* 직원 설정 */
    .wla-cfg-card { background:#f7fafc; border:1px solid #e2e8f0; border-radius:10px; padding:14px 16px; margin-bottom:10px; }
    .wla-cfg-hd   { font-weight:700; color:#2d3748; margin-bottom:10px; font-size:0.9rem; }
    .wla-cfg-row  { display:flex; align-items:center; gap:8px; margin-bottom:8px; flex-wrap:wrap; }
    .wla-cfg-label{ font-size:0.8rem; color:#718096; width:80px; flex-shrink:0; }
    .wla-cfg-input{ padding:6px 10px; border:1px solid #e2e8f0; border-radius:6px; font-size:0.85rem; font-family:inherit; background:#fff; outline:none; }
    .wla-cfg-input:focus { border-color:#A8724A; }
    .wla-adj-row  { display:flex; align-items:center; gap:6px; margin-bottom:6px; }
    .wla-adj-del  { background:none; border:1px solid #fca5a5; color:#dc2626; border-radius:6px; padding:3px 8px; cursor:pointer; font-size:0.75rem; font-family:inherit; }
    .wla-cfg-save { background:#A8724A; color:#fff; border:none; border-radius:8px; padding:7px 18px; font-size:0.82rem; font-weight:700; cursor:pointer; font-family:inherit; margin-top:6px; }
    /* 설문 집계 표 */
    .wla-av-tbl { width:100%; border-collapse:collapse; font-size:0.82rem; }
    .wla-av-tbl th { background:#f7fafc; padding:7px 10px; text-align:center; border-bottom:2px solid #e2e8f0; color:#4a5568; font-size:0.78rem; }
    .wla-av-tbl th:first-child { text-align:left; min-width:72px; }
    .wla-av-tbl td { padding:7px 8px; text-align:center; border-bottom:1px solid #f0f4f8; }
    .wla-av-tbl td:first-child { text-align:left; font-weight:700; color:#2d3748; }
    .wla-av-ok  { color:#276749; font-size:1rem; }
    .wla-av-no  { color:#e53e3e; font-size:0.9rem; }
    @media (max-width:768px) {
      .wla-pay-tbl { font-size:0.75rem; }
      .wla-pay-tbl th, .wla-pay-tbl td { padding:6px 6px; }
      .wla-person-row { flex-direction:column; }
    }
    /* ── 장기예약 가능 방 조회 ── */
    .lta-section { margin-top:28px; border-top:2px solid #F0EBE5; padding-top:20px; }
    .lta-header { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:14px; }
    .lta-title { font-size:0.95rem; font-weight:800; color:#2C2420; }
    .lta-subtitle { font-size:0.78rem; color:#8B7B72; }
    .lta-toggle-wrap { display:flex; align-items:center; gap:8px; }
    .lta-toggle { position:relative; display:inline-block; width:42px; height:24px; }
    .lta-toggle input { opacity:0; width:0; height:0; }
    .lta-slider { position:absolute; cursor:pointer; inset:0; background:#E8E0D8; border-radius:24px; transition:.2s; }
    .lta-slider::before { position:absolute; content:""; height:18px; width:18px; left:3px; bottom:3px; background:#fff; border-radius:50%; transition:.2s; }
    .lta-toggle input:checked + .lta-slider { background:#A8724A; }
    .lta-toggle input:checked + .lta-slider::before { transform:translateX(18px); }
    .lta-notice { background:#FFF8F0; border:1px solid #F5DFC0; border-radius:10px; padding:14px 18px; font-size:0.84rem; color:#8B5E3C; }
    .lta-tbl { width:100%; border-collapse:collapse; font-size:0.84rem; margin-top:10px; }
    .lta-tbl th { background:#F8F6F3; color:#4a5568; font-weight:700; padding:9px 12px; text-align:left; border-bottom:2px solid #E8E0D8; font-size:0.8rem; }
    .lta-tbl td { padding:9px 12px; border-bottom:1px solid #F0EBE5; vertical-align:middle; }
    .lta-tbl tr:last-child td { border-bottom:none; }
    .lta-badge-hr  { background:#FDF0EB; color:#A8724A; border-radius:5px; padding:2px 8px; font-size:0.72rem; font-weight:700; }
    .lta-badge-ic  { background:#EBF4FD; color:#2B6CB0; border-radius:5px; padding:2px 8px; font-size:0.72rem; font-weight:700; }
    .lta-msg-btn   { background:#A8724A; color:#fff; border:none; border-radius:7px; padding:5px 12px; font-size:0.78rem; font-weight:700; cursor:pointer; font-family:inherit; white-space:nowrap; }
    .lta-msg-btn:hover { background:#8B5E3C; }
    .lta-empty { color:#a0aec0; font-size:0.85rem; text-align:center; padding:24px 0; }
    .lta-prop-section { margin-bottom:22px; }
    .lta-prop-header { display:flex; align-items:center; gap:10px; padding:8px 14px; border-left:4px solid #A8724A; background:#FBF8F5; border-radius:0 8px 8px 0; margin-bottom:8px; font-size:0.88rem; font-weight:800; color:#2C2420; }
    .lta-prop-count { font-size:0.75rem; color:#A8724A; font-weight:600; }
    /* 문자 생성 모달 */
    .lta-modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.45); z-index:9998; align-items:center; justify-content:center; }
    .lta-modal-overlay.open { display:flex; }
    .lta-modal { background:#fff; border-radius:16px; padding:24px 22px; width:520px; max-width:95vw; max-height:88vh; overflow-y:auto; box-shadow:0 8px 32px rgba(0,0,0,0.18); }
    .lta-modal-hd { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
    .lta-modal-title { font-size:0.95rem; font-weight:800; color:#2C2420; }
    .lta-modal-close { background:none; border:none; font-size:1.2rem; cursor:pointer; color:#8B7B72; }
    .lta-lang-tabs { display:flex; gap:0; border-bottom:2px solid #F0EBE5; margin-bottom:14px; }
    .lta-lang-tab  { padding:7px 18px; font-size:0.82rem; font-weight:600; cursor:pointer; border:none; background:transparent; color:#8B7B72; border-bottom:2px solid transparent; margin-bottom:-2px; font-family:inherit; }
    .lta-lang-tab.active { color:#A8724A; border-bottom-color:#A8724A; font-weight:700; }
    .lta-msg-box { background:#F8F6F3; border-radius:9px; padding:14px 16px; font-size:0.85rem; line-height:1.7; white-space:pre-wrap; color:#2C2420; min-height:160px; }
    .lta-copy-btn { margin-top:10px; background:#2d3748; color:#fff; border:none; border-radius:8px; padding:9px 22px; font-size:0.83rem; font-weight:700; cursor:pointer; font-family:inherit; }
    .lta-copy-btn:hover { background:#1a202c; }
