/* Room & Board Tools Shared Styles */

/* ============================================
   Links
   ============================================ */
.rnb-rate-link { 
  color: #1890ff; 
  font-weight: 400; 
  cursor: pointer; 
  text-decoration: none; 
}
.rnb-rate-link:hover { 
  color: #40a9ff; 
  text-decoration: underline; 
}

/* ============================================
   Table Styles (shared across all pages)
   ============================================ */
.rnb-table-header { 
  border-color: #f0f0f0; 
  background-color: #fafafa; 
  font-weight: 500; 
}
.rnb-table-header-title {
  border-color: #f0f0f0;
  background-color: #fafafa;
  font-weight: 500;
  color: rgba(0,0,0,0.85);
  z-index: 2;
}
.rnb-table-header-payer {
  border-color: #f0f0f0;
  background-color: #fafafa;
  font-weight: 500;
  max-width: 150px;
  white-space: normal;
  word-wrap: break-word;
}
.rnb-table-header-col {
  border-color: #f0f0f0;
  background-color: #fafafa;
  font-weight: 500;
  font-size: 12px;
}
.rnb-table-cell { 
  border-color: #f0f0f0; 
  background-color: white;
  transition: background-color 0.2s;
}
.rnb-table-row:hover .rnb-table-cell {
  background-color: #fafafa;
}
.rnb-table-cell:hover {
  background-color: #e6f7ff !important;
}
/* Disable hover effects in modals */
.rnb-modal-container .rnb-table-row:hover .rnb-table-cell,
.rnb-modal-container-sm .rnb-table-row:hover .rnb-table-cell,
.rnb-modal-container-lg .rnb-table-row:hover .rnb-table-cell,
.rnb-modal-container .rnb-table-cell:hover,
.rnb-modal-container-sm .rnb-table-cell:hover,
.rnb-modal-container-lg .rnb-table-cell:hover {
  background-color: white !important;
}
.rnb-table-row { 
  transition: background-color 0.2s; 
}
.rnb-table-row:hover { 
  background-color: #fafafa; 
}
.rnb-table-container {
  max-height: calc(100vh - 120px);
  border: 1px solid #f0f0f0;
  border-top: none;
}
.rnb-sticky-header {
  position: sticky;
  top: 0;
  z-index: 1;
}
.rnb-rate-table {
  border-collapse: collapse;
  background: white;
}
.rnb-cell-empty {
  background-color: #fafafa;
}
.rnb-cell-total {
  font-weight: 500;
}

/* Rate cell (for rate editor grid) */
.rnb-rate-cell { 
  border-color: #f0f0f0; 
  background-color: white;
  transition: background-color 0.2s; 
}
.rnb-table-row:hover .rnb-rate-cell {
  background-color: #fafafa;
}
.rnb-rate-cell:hover { 
  background-color: #e6f7ff !important; 
}

/* ============================================
   Modal Styles (shared across all pages)
   ============================================ */
.rnb-modal-overlay {
  z-index: 9999;
  background-color: rgba(0,0,0,0.5);
}
.rnb-modal-container {
  max-width: 650px;
  width: 90%;
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.rnb-modal-container-lg {
  width: 650px;
  max-width: 90%;
  max-height: 80vh;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.rnb-modal-container-sm {
  max-width: 500px;
  width: 90%;
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.rnb-modal-visible { 
  opacity: 1; 
  transition: opacity 300ms; 
}
.rnb-modal-hidden { 
  opacity: 0; 
}
.rnb-auth-modal-visible { 
  opacity: 1; 
  transition: opacity 300ms; 
}
.rnb-auth-modal-hidden { 
  opacity: 0; 
}
.rnb-rate-modal-visible { 
  opacity: 1; 
  transition: opacity 300ms; 
}
.rnb-rate-modal-hidden { 
  opacity: 0; 
}
.rnb-modal-header {
  border-color: #f0f0f0;
}
.rnb-modal-title {
  color: rgba(0,0,0,0.85);
}
.rnb-modal-subtitle {
  color: rgba(0,0,0,0.45);
}
.rnb-modal-footer {
  border-color: #f0f0f0;
}
.rnb-modal-table {
  border-collapse: collapse;
}
.rnb-modal-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 12px;
  max-height: 60vh;
  overflow-y: auto;
}
.rnb-modal-grid-full {
  grid-column: 1 / -1;
}
.rnb-modal-total-section {
  grid-column: 1 / -1;
  padding-top: 8px;
  border-top: 1px solid #f0f0f0;
  margin-top: 4px;
}

/* ============================================
   Buttons
   ============================================ */
.rnb-btn-primary { 
  background-color: #1890ff; 
  color: white; 
  border: 1px solid #1890ff; 
  height: 32px; 
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.rnb-btn-secondary {
  border-color: #d9d9d9;
  color: rgba(0,0,0,0.65);
  height: 32px;
}
.rnb-btn-danger {
  border-color: #ff4d4f;
  color: #ff4d4f;
  height: 32px;
}
.rnb-btn-cancel {
  padding: 4px 15px;
  height: 32px;
  border: 1px solid #d9d9d9;
  background-color: white;
  color: rgba(0,0,0,0.85);
  font-size: 14px;
  cursor: pointer;
  border-radius: 2px;
}
.rnb-btn-submit {
  padding: 4px 15px;
  border-radius: 2px;
}
.rnb-btn-delete {
  padding: 2px 8px;
  color: #ff4d4f;
  border-color: #d9d9d9;
}
.rnb-btn-close {
  border: none;
  background: none;
  font-size: 20px;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  transition: color 0.2s;
}
.rnb-btn-action {
  display: inline-block;
  padding: 4px 8px;
  border: 1px solid #d9d9d9;
  background-color: #f5f5f5;
  color: rgba(0,0,0,0.65);
  font-size: 12px;
  cursor: pointer;
}
.rnb-btn-action:hover {
  background-color: #e8e8e8;
}
.rnb-btn-nowrap {
  white-space: nowrap;
}
.rnb-save-button { 
  background-color: #1890ff; 
  color: white; 
  border-color: #1890ff;
  height: 32px;
}
.rnb-save-button:disabled { 
  background-color: #d9d9d9; 
  color: rgba(0,0,0,0.25); 
  border-color: #d9d9d9; 
  cursor: not-allowed; 
}

/* ============================================
   Form Elements
   ============================================ */
.rnb-form-input { 
  height: 32px; 
  font-size: 14px; 
  border-color: #d9d9d9;
}
.rnb-form-label { 
  color: rgba(0,0,0,0.85);
  font-size: 14px;
  height: 32px;
  display: inline-flex;
  align-items: center;
}
.rnb-input-disabled { 
  background-color: #f5f5f5; 
  color: rgba(0,0,0,0.65);
}
.rnb-input-field {
  border-color: #d9d9d9;
}
.rnb-input-readonly {
  border-color: #d9d9d9;
  background-color: #f5f5f5;
  color: rgba(0,0,0,0.65);
  font-size: 14px;
  min-height: 32px;
  display: flex;
  align-items: center;
}
.rnb-input-readonly-short {
  border-color: #d9d9d9;
  background-color: #f5f5f5;
  color: rgba(0,0,0,0.65);
  font-size: 14px;
  height: 32px;
  display: flex;
  align-items: center;
}
.rnb-label-secondary {
  color: rgba(0,0,0,0.65);
}
.rnb-select-dropdown {
  height: 32px;
  font-size: 14px;
  border-color: #d9d9d9;
  background-color: white;
}
.rnb-actions-col {
  width: 100px;
}

/* ============================================
   Text Styles
   ============================================ */
.rnb-text-muted { 
  color: rgba(0,0,0,0.45);
  font-size: 14px;
  height: 32px;
  display: inline-flex;
  align-items: center;
}
.rnb-text-primary {
  color: rgba(0,0,0,0.85);
}
.rnb-text-secondary {
  color: rgba(0,0,0,0.65);
}
.rnb-text-label-nowrap {
  color: rgba(0,0,0,0.85);
  white-space: nowrap;
}
.rnb-text-no-rate {
  color: rgba(0,0,0,0.25);
}
.rnb-text-inherit {
  color: inherit;
}

/* ============================================
   Validation & Alerts
   ============================================ */
.rnb-validation-error {
  color: #ff4d4f;
}
.rnb-alert-warning {
  background-color: #fff7e6;
  border-color: #ffa940;
  color: #d46b08;
}
.rnb-alert-success {
  background-color: #f6ffed;
  border-color: #b7eb8f;
  color: #52c41a;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.rnb-alert-error {
  background-color: #fff2f0;
  border-color: #ffccc7;
  color: #ff4d4f;
}
.rnb-alert-close-btn {
  border: none;
  background: none;
  color: #52c41a;
  font-size: 20px;
  cursor: pointer;
  padding: 0;
  margin-left: 16px;
}

/* ============================================
   Chips/Badges (Workcenter)
   ============================================ */
.rnb-chip {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 500;
  white-space: nowrap;
  margin-right: 4px;
  border: 1px solid;
  position: relative;
}
.rnb-chip[data-tooltip]:hover::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  background: #333;
  color: white;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 11px;
  white-space: nowrap;
  z-index: 1000;
  margin-bottom: 4px;
}
.rnb-chip[data-tooltip]:hover::before {
  content: '';
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 5px solid transparent;
  border-top-color: #333;
  z-index: 1000;
}
.rnb-chip-red {
  background-color: #ffe3e3;
  color: #c92a2a;
  border-color: #ffa8a8;
}
.rnb-chip-yellow {
  background-color: #fff3bf;
  color: #ad8600;
  border-color: #ffd43b;
}
.rnb-chip-green {
  background-color: #d3f9d8;
  color: #2b8a3e;
  border-color: #8ce99a;
}
.rnb-chip-blue {
  background-color: #e7f5ff;
  color: #1864ab;
  border-color: #74c0fc;
}

/* Status pills (Workcenter) */
.rnb-status-pill {
  padding: 2px 8px;
  font-size: 11px;
  border: 1px solid #dee2e6;
  color: #495057;
  background-color: #f8f9fa;
  display: inline-block;
  white-space: nowrap;
}
.rnb-status-pill.ready {
  border-color: #51cf66;
  color: #2b8a3e;
  background-color: #e6fcf5;
}
.rnb-status-pill.needs-review {
  border-color: #ffa94d;
  color: #d9480f;
  background-color: #fff4e6;
}
.rnb-status-pill.generated {
  border-color: #4dabf7;
  color: #1864ab;
  background-color: #e7f5ff;
}

/* ============================================
   Borders & Sections
   ============================================ */
.rnb-section-border { 
  border-color: #f0f0f0; 
}
.rnb-section-header {
  background-color: #fafafa;
  font-weight: 500;
}
.rnb-action-buttons {
  padding: 12px 0;
}

/* ============================================
   File Upload
   ============================================ */
.rnb-file-upload-zone {
  border-color: #d9d9d9;
  transition: all 0.3s;
}
.rnb-file-icon {
  color: #52c41a;
}
.rnb-file-text {
  color: rgba(0,0,0,0.65);
}

/* ============================================
   Insurance Fields (RUG Rates)
   ============================================ */
.rnb-insurance-field {
  border-color: #d9d9d9;
  background-color: #f5f5f5;
  font-size: 14px;
  height: 32px;
  display: flex;
  align-items: center;
}
.rnb-insurance-field-set {
  color: rgba(0,0,0,0.65);
}
.rnb-insurance-field-unset {
  color: #ffccc7;
}

/* ============================================
   Code Display
   ============================================ */
.rnb-code-display {
  display: flex;
  align-items: center;
  font-family: monospace;
  border-radius: 2px;
}

/* ============================================
   Total Rate Display (RUG Rates)
   ============================================ */
.rnb-total-rate-display {
  height: 36px;
  font-size: 16px;
  border-color: #d9d9d9;
  background-color: #fafafa;
  font-weight: 600;
  color: #1890ff;
  display: flex;
  align-items: center;
  border-radius: 2px;
}

/* ============================================
   Page Container & Title
   ============================================ */
.rnb-page-container {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI',
    Roboto, 'Helvetica Neue', Arial, sans-serif;
}
.rnb-page-title {
  color: rgba(0,0,0,0.85);
  margin: 0;
}
