/*
 * RESELL RIGHTS DESIGN SYSTEM
 * Phase 1.4 - Mobile-First Responsive Rebuild
 */

/* ==========================================================================
   THEME TOKENS
   ========================================================================== */

/* LIGHT THEME (Default) */
:root, [data-theme="light"] {
  --rr-bg: #F4F1EC;
  --rr-surface: #FFFFFF;
  --rr-surface-raised: #FFFFFF;
  --rr-surface-soft: #FBF8F4;

  --rr-text-primary: #0B2B4A;
  --rr-text-secondary: #4A5568;
  --rr-text-muted: #8A94A6;
  --rr-text-disabled: #CBD5E1;

  --rr-border: #E6DFD5;
  --rr-border-strong: #D1C7BB;

  --rr-navy: #0B2B4A;
  --rr-navy-dark: #071D33;
  --rr-orange: #FF641F;
  --rr-orange-dark: #E95314;

  --rr-success: #19A66A;
  --rr-danger: #E5484D;
  --rr-warning: #F4B740;
  --rr-info: #3B82F6;

  /* Always Dark Tokens (for Hero / specific dark surfaces) */
  --rr-text-on-dark: #FFFFFF;
  --rr-text-on-dark-secondary: rgba(255, 255, 255, 0.78);
  --rr-text-on-dark-muted: rgba(255, 255, 255, 0.60);
  --rr-border-on-dark: rgba(255, 255, 255, 0.15);

  /* Shadows */
  --rr-shadow-xs: 0 1px 2px rgba(11, 43, 74, 0.05);
  --rr-shadow-sm: 0 3px 6px rgba(11, 43, 74, 0.06), 0 1px 3px rgba(11, 43, 74, 0.04);
  --rr-shadow-md: 0 8px 16px rgba(11, 43, 74, 0.08), 0 3px 6px rgba(11, 43, 74, 0.04);
  --rr-shadow-lg: 0 16px 32px rgba(11, 43, 74, 0.1), 0 6px 12px rgba(11, 43, 74, 0.06);
  --rr-shadow-xl: 0 24px 48px rgba(11, 43, 74, 0.12), 0 12px 24px rgba(11, 43, 74, 0.08);

  --rr-badge-success-bg: rgba(25, 166, 106, 0.1);
  --rr-badge-warning-bg: rgba(244, 183, 64, 0.15);
  --rr-badge-danger-bg: rgba(229, 72, 77, 0.1);
  --rr-badge-info-bg: rgba(59, 130, 246, 0.1);
}

/* DARK THEME */
[data-theme="dark"] {
  --rr-bg: #0B1220;
  --rr-surface: #111C2E;
  --rr-surface-raised: #16243A;
  --rr-surface-soft: #1B2A40;

  --rr-text-primary: #F8FAFC;
  --rr-text-secondary: #CBD5E1;
  --rr-text-muted: #94A3B8;
  --rr-text-disabled: #475569;

  --rr-border: rgba(255, 255, 255, 0.10);
  --rr-border-strong: rgba(255, 255, 255, 0.16);

  --rr-navy: #0F2A44;
  --rr-navy-dark: #0A1D30;
  --rr-orange: #FF6422;
  --rr-orange-dark: #E95314;

  --rr-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.3);
  --rr-shadow-sm: 0 3px 6px rgba(0, 0, 0, 0.4);
  --rr-shadow-md: 0 8px 16px rgba(0, 0, 0, 0.5);
  --rr-shadow-lg: 0 16px 32px rgba(0, 0, 0, 0.6);
  --rr-shadow-xl: 0 24px 48px rgba(0, 0, 0, 0.7);

  --rr-badge-success-bg: rgba(25, 166, 106, 0.2);
  --rr-badge-warning-bg: rgba(244, 183, 64, 0.2);
  --rr-badge-danger-bg: rgba(229, 72, 77, 0.25);
  --rr-badge-info-bg: rgba(59, 130, 246, 0.2);
}

/* UNIVERSAL TOKENS */
:root {
  --rr-font-primary: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  
  /* Spacing */
  --rr-space-1: 4px;
  --rr-space-2: 8px;
  --rr-space-3: 12px;
  --rr-space-4: 16px;
  --rr-space-5: 20px;
  --rr-space-6: 24px;
  --rr-space-8: 32px;
  --rr-space-10: 40px;
  --rr-space-12: 48px;
  --rr-space-16: 64px;

  /* Radii */
  --rr-radius-xs: 6px;
  --rr-radius-sm: 10px;
  --rr-radius-md: 14px;
  --rr-radius-lg: 18px;
  --rr-radius-xl: 24px;
  --rr-radius-full: 9999px;
  
  /* Transitions */
  --rr-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  --rr-focus-ring: 0 0 0 3px rgba(255, 100, 31, 0.35);
}

/* ==========================================================================
   GLOBAL RESET & MOBILE FIRST ARCHITECTURE
   ========================================================================== */
html { box-sizing: border-box; overflow-x: hidden; }
*, *::before, *::after { box-sizing: inherit; }

body.rr-design-system, .rr-design-system {
    margin: 0; padding: 0;
    font-family: var(--rr-font-primary);
    color: var(--rr-text-secondary);
    background-color: var(--rr-bg);
    font-size: 14px; /* Mobile base */
    line-height: 1.5; -webkit-font-smoothing: antialiased;
    transition: background-color 0.3s ease, color 0.3s ease;
    overflow-x: hidden;
}
@media (min-width: 768px) { body.rr-design-system, .rr-design-system { font-size: 15px; } }

/* Typography */
.rr-design-system h1, .rr-design-system h2, .rr-design-system h3, 
.rr-design-system h4, .rr-design-system h5, .rr-design-system h6 {
    color: var(--rr-text-primary);
    font-weight: 700; margin-top: 0; margin-bottom: var(--rr-space-4);
    overflow-wrap: anywhere;
}
.rr-text-primary { color: var(--rr-text-primary); }
.rr-text-secondary { color: var(--rr-text-secondary); }
.rr-text-muted { color: var(--rr-text-muted); font-size: clamp(12px, 2vw, 13px); }
.rr-text-success { color: var(--rr-success); }
.rr-text-danger { color: var(--rr-danger); }
.rr-text-orange { color: var(--rr-orange); }

/* Images & Media */
.rr-design-system img, .rr-design-system picture, .rr-design-system video {
    max-width: 100%; height: auto; display: block;
}

/* ==========================================================================
   LAYOUT & GRIDS
   ========================================================================== */
.rr-container {
    width: 100%; max-width: 1440px; margin-inline: auto;
    padding-inline: 16px;
}
@media (max-width: 360px) { .rr-container { padding-inline: 12px; } }
@media (min-width: 768px) { .rr-container { padding-inline: 24px; } }
@media (min-width: 1024px) { .rr-container { padding-inline: 32px; } }

/* Mobile-first Grid */
.rr-grid { display: grid; gap: var(--rr-space-4); }
@media (min-width: 768px) { .rr-grid { gap: var(--rr-space-6); } }

.rr-grid-2 { grid-template-columns: 1fr; }
@media (min-width: 768px) { .rr-grid-2 { grid-template-columns: repeat(2, 1fr); } }

.rr-grid-3 { grid-template-columns: 1fr; }
@media (min-width: 768px) { .rr-grid-3 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .rr-grid-3 { grid-template-columns: repeat(3, 1fr); } }

.rr-grid-4 { grid-template-columns: 1fr; }
@media (min-width: 480px) { .rr-grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .rr-grid-4 { grid-template-columns: repeat(4, 1fr); } }

/* Sections */
.rr-section { margin-bottom: var(--rr-space-10); }
@media (min-width: 768px) { .rr-section { margin-bottom: var(--rr-space-16); } }

/* ==========================================================================
   DARK SURFACE CONTEXT
   ========================================================================== */
.rr-design-system .rr-surface-dark,
.rr-design-system .rr-hero {
    background-color: var(--rr-navy); color: var(--rr-text-on-dark-secondary);
}
.rr-design-system .rr-surface-dark h1, .rr-design-system .rr-surface-dark h2, 
.rr-design-system .rr-surface-dark h3, .rr-design-system .rr-surface-dark h4, 
.rr-design-system .rr-surface-dark h5, .rr-design-system .rr-surface-dark h6,
.rr-design-system .rr-surface-dark .rr-text-primary,
.rr-design-system .rr-surface-dark .rr-hero-title,
.rr-design-system .rr-hero h1, .rr-design-system .rr-hero .rr-hero-title {
    color: var(--rr-text-on-dark);
}
.rr-design-system .rr-surface-dark p, .rr-design-system .rr-surface-dark .rr-text-secondary,
.rr-design-system .rr-surface-dark .rr-hero-description,
.rr-design-system .rr-hero p, .rr-design-system .rr-hero .rr-hero-description {
    color: var(--rr-text-on-dark-secondary);
}
.rr-design-system .rr-surface-dark .rr-text-muted, .rr-design-system .rr-hero .rr-text-muted { color: var(--rr-text-on-dark-muted); }
.rr-design-system .rr-surface-dark .rr-eyebrow, .rr-design-system .rr-hero .rr-eyebrow { color: var(--rr-orange); }

/* Inputs in Dark Context */
.rr-design-system .rr-surface-dark .rr-input {
    background-color: rgba(255,255,255,0.05); color: var(--rr-text-on-dark); border-color: var(--rr-border-on-dark);
}
.rr-design-system .rr-surface-dark .rr-input::placeholder { color: var(--rr-text-on-dark-muted); }

/* Buttons in Dark Context */
.rr-design-system .rr-surface-dark .rr-btn-secondary,
.rr-design-system .rr-hero .rr-btn-secondary {
    background-color: rgba(255,255,255,0.1); color: var(--rr-text-on-dark); border-color: var(--rr-border-on-dark);
}
.rr-design-system .rr-surface-dark .rr-btn-secondary:hover,
.rr-design-system .rr-hero .rr-btn-secondary:hover { background-color: rgba(255,255,255,0.2); }
.rr-design-system .rr-surface-dark .rr-btn-outline {
    border-color: var(--rr-border-on-dark); color: var(--rr-text-on-dark); background: transparent;
}
.rr-design-system .rr-surface-dark .rr-btn-outline:hover { background-color: rgba(255,255,255,0.1); }


/* ==========================================================================
   HERO COMPONENT (Mobile First)
   ========================================================================== */
.rr-hero {
    position: relative; overflow: hidden; border-radius: var(--rr-radius-xl);
    padding: var(--rr-space-6) var(--rr-space-4); display: flex; flex-direction: column; gap: var(--rr-space-6);
    box-shadow: var(--rr-shadow-lg); margin-bottom: var(--rr-space-8);
}
@media (min-width: 768px) {
    .rr-hero { flex-direction: row; justify-content: space-between; align-items: center; padding: var(--rr-space-8) var(--rr-space-10); }
}

.rr-hero-glow {
    position: absolute; top: -20%; left: -20%; width: 300px; height: 300px;
    background: radial-gradient(circle, rgba(255,100,31,0.15) 0%, rgba(255,100,31,0) 70%); pointer-events: none; z-index: 1;
}
@media (min-width: 768px) { .rr-hero-glow { width: 600px; height: 600px; top: -50%; } }

.rr-hero-content { position: relative; z-index: 2; flex-grow: 1; width: 100%; }
.rr-eyebrow {
    font-size: clamp(12px, 3vw, 14px); font-weight: 700; color: var(--rr-orange);
    letter-spacing: 0.1em; margin-bottom: var(--rr-space-2); text-transform: uppercase;
}
.rr-hero-title { font-size: clamp(26px, 7vw, 42px); font-weight: 800; letter-spacing: -0.02em; margin-bottom: var(--rr-space-3); line-height: 1.2; }
.rr-hero-description { font-size: clamp(15px, 4vw, 17px); max-width: 500px; margin-bottom: var(--rr-space-6); }

.rr-hero-actions { display: flex; flex-direction: column; gap: var(--rr-space-3); width: 100%; }
.rr-hero-actions .rr-btn { width: 100%; }
@media (min-width: 480px) { .rr-hero-actions { flex-direction: row; } .rr-hero-actions .rr-btn { width: auto; } }

.rr-hero-visual { position: relative; z-index: 2; width: 100%; display: flex; justify-content: center; }
@media (min-width: 768px) { .rr-hero-visual { width: auto; } }
.rr-hero-logo-card {
    background: rgba(255,255,255,0.05); backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.1); padding: var(--rr-space-5); border-radius: var(--rr-radius-lg);
    display: flex; align-items: center; gap: var(--rr-space-4); box-shadow: var(--rr-shadow-lg); width: 100%;
}
@media (min-width: 768px) { .rr-hero-logo-card { padding: var(--rr-space-6); width: auto; } }
.rr-hero-logo-icon {
    width: 44px; height: 44px; flex-shrink: 0; background: var(--rr-orange); border-radius: var(--rr-radius-sm);
    display: flex; align-items: center; justify-content: center; color: #FFF;
}
@media (min-width: 768px) { .rr-hero-logo-icon { width: 48px; height: 48px; } }

/* ==========================================================================
   CARDS & METRICS
   ========================================================================== */
.rr-card {
    background-color: var(--rr-surface); border: 1px solid var(--rr-border); border-radius: var(--rr-radius-lg);
    box-shadow: var(--rr-shadow-sm); transition: var(--rr-transition); display: flex; flex-direction: column; overflow: hidden;
    width: 100%; min-width: 0; overflow-wrap: anywhere;
}
.rr-card-hoverable:hover { box-shadow: var(--rr-shadow-md); transform: translateY(-2px); }

.rr-card-header { padding: var(--rr-space-4); border-bottom: 1px solid var(--rr-border); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; }
@media (min-width: 768px) { .rr-card-header { padding: var(--rr-space-5) var(--rr-space-6); } }

.rr-card-title { font-size: clamp(15px, 4vw, 17px); font-weight: 700; color: var(--rr-text-primary); margin: 0; }
.rr-card-body { padding: var(--rr-space-4); flex-grow: 1; }
@media (min-width: 768px) { .rr-card-body { padding: var(--rr-space-6); } }

.rr-card-footer { padding: var(--rr-space-4); border-top: 1px solid var(--rr-border); background-color: var(--rr-surface-soft); display: flex; flex-wrap: wrap; gap: 8px; }
@media (min-width: 768px) { .rr-card-footer { padding: var(--rr-space-4) var(--rr-space-6); } }

.rr-stat-card { padding: var(--rr-space-4); }
@media (min-width: 768px) { .rr-stat-card { padding: var(--rr-space-6); } }
.rr-stat-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--rr-space-3); }
.rr-stat-icon {
    width: 40px; height: 40px; border-radius: var(--rr-radius-sm); display: flex; align-items: center; justify-content: center;
    background-color: var(--rr-surface-soft); color: var(--rr-text-primary); flex-shrink: 0;
}
@media (min-width: 768px) { .rr-stat-icon { width: 44px; height: 44px; } }
.rr-stat-title { font-size: 13px; color: var(--rr-text-muted); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; margin: 0; }
.rr-stat-value { font-size: clamp(24px, 6vw, 32px); font-weight: 800; color: var(--rr-text-primary); line-height: 1.1; margin-bottom: var(--rr-space-2); }
.rr-stat-trend { display: flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 600; }
@media (min-width: 768px) { .rr-stat-trend { font-size: 13px; } }
.rr-stat-trend.up { color: var(--rr-success); }
.rr-stat-trend.down { color: var(--rr-danger); }

/* ==========================================================================
   BUTTONS
   ========================================================================== */
.rr-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: var(--rr-space-2);
    padding: var(--rr-space-2) var(--rr-space-4); min-height: 48px; /* Mobile touch friendly */
    font-family: var(--rr-font-primary); font-size: 14px; font-weight: 600;
    border-radius: var(--rr-radius-md); border: 1px solid transparent;
    cursor: pointer; transition: var(--rr-transition); text-decoration: none; white-space: nowrap;
}
@media (min-width: 768px) { .rr-btn { min-height: 44px; padding: 0 var(--rr-space-5); } }
.rr-btn:focus-visible { outline: none; box-shadow: var(--rr-focus-ring); }
.rr-btn:disabled, .rr-btn.disabled { opacity: 0.5; cursor: not-allowed; pointer-events: none; }
.rr-btn svg { width: 18px; height: 18px; flex-shrink: 0; }

.rr-btn-primary { background-color: var(--rr-orange); color: #FFF; border-color: var(--rr-orange); box-shadow: 0 4px 12px rgba(255, 100, 31, 0.2); }
.rr-btn-primary:hover { background-color: var(--rr-orange-dark); box-shadow: 0 6px 16px rgba(255, 100, 31, 0.3); transform: translateY(-1px); }

.rr-btn-secondary { background-color: var(--rr-surface-raised); color: var(--rr-text-primary); border: 1px solid var(--rr-border-strong); }
.rr-btn-secondary:hover { background-color: var(--rr-surface-soft); box-shadow: var(--rr-shadow-sm); }

.rr-btn-outline { background-color: transparent; color: var(--rr-text-primary); border-color: var(--rr-border-strong); }
.rr-btn-outline:hover { background-color: var(--rr-surface-soft); }

.rr-btn-ghost { background-color: transparent; color: var(--rr-text-secondary); }
.rr-btn-ghost:hover { background-color: var(--rr-surface-soft); color: var(--rr-text-primary); }

.rr-btn-danger { background-color: var(--rr-danger); color: #FFF; }
.rr-btn-success { background-color: var(--rr-success); color: #FFF; }
.rr-btn-full { width: 100%; }

.rr-btn-group { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; }

/* ==========================================================================
   FORMS & INPUTS (Mobile First)
   ========================================================================== */
.rr-form-group { margin-bottom: var(--rr-space-4); width: 100%; }
.rr-form-label { display: block; margin-bottom: var(--rr-space-2); font-size: 13px; font-weight: 600; color: var(--rr-text-primary); }

.rr-input, .rr-select, .rr-textarea {
    width: 100%; min-height: 48px; /* Mobile friendly */
    padding: var(--rr-space-3); font-family: var(--rr-font-primary); 
    font-size: 16px; /* 16px PREVENTS iOS AUTO-ZOOM ON MOBILE */
    color: var(--rr-text-primary); background-color: var(--rr-surface); 
    border: 1px solid var(--rr-border-strong); border-radius: var(--rr-radius-md);
    transition: var(--rr-transition); appearance: none;
}
@media (min-width: 768px) {
    .rr-input, .rr-select { min-height: 44px; padding: var(--rr-space-2) var(--rr-space-3); font-size: 14px; }
}
.rr-textarea { min-height: 100px; resize: vertical; }

.rr-input:focus, .rr-select:focus, .rr-textarea:focus { outline: none; border-color: var(--rr-orange); box-shadow: var(--rr-focus-ring); }
.rr-input::placeholder, .rr-textarea::placeholder { color: var(--rr-text-muted); }

.rr-search-bar { position: relative; display: flex; align-items: center; width: 100%; }
.rr-search-bar svg { position: absolute; left: 16px; color: var(--rr-text-muted); width: 18px; height: 18px; pointer-events: none; }
.rr-search-bar .rr-input { padding-left: 44px; border-radius: var(--rr-radius-full); background: var(--rr-surface-soft); border-color: transparent; }
.rr-search-bar .rr-input:focus { background: var(--rr-surface); border-color: var(--rr-orange); }

/* ==========================================================================
   BADGES
   ========================================================================== */
.rr-badge {
    display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px;
    border-radius: var(--rr-radius-full); font-size: 11px; font-weight: 700; white-space: normal;
    text-align: left;
}
@media (min-width: 768px) { .rr-badge { padding: 4px 10px; font-size: 12px; gap: 6px; white-space: nowrap; } }
.rr-badge-success { background-color: var(--rr-badge-success-bg); color: var(--rr-success); }
.rr-badge-warning { background-color: var(--rr-badge-warning-bg); color: var(--rr-warning); }
.rr-badge-danger { background-color: var(--rr-badge-danger-bg); color: var(--rr-danger); }
.rr-badge-info { background-color: var(--rr-badge-info-bg); color: var(--rr-info); }
.rr-badge-neutral { background-color: var(--rr-surface-soft); border: 1px solid var(--rr-border); color: var(--rr-text-secondary); }

/* ==========================================================================
   RESPONSIVE TABLES (CRITICAL FIX)
   ========================================================================== */
.rr-table-toolbar {
    display: flex; flex-direction: column; gap: var(--rr-space-4); padding: var(--rr-space-4);
    border-bottom: 1px solid var(--rr-border); background: var(--rr-surface);
}
@media (min-width: 768px) {
    .rr-table-toolbar { flex-direction: row; justify-content: space-between; padding: var(--rr-space-4) var(--rr-space-6); }
    .rr-table-toolbar .rr-search-bar { max-width: 300px; }
}

.rr-table-wrapper { width: 100%; }

/* Mobile-First Table architecture (Cards) */
.rr-table { width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; display: block; }
.rr-table thead { display: none; } /* Hide headers on mobile */
.rr-table tbody { display: block; width: 100%; }
.rr-table tr {
    display: flex; flex-direction: column; gap: 8px;
    background-color: var(--rr-surface); border: 1px solid var(--rr-border); border-radius: var(--rr-radius-md);
    margin: var(--rr-space-4); padding: var(--rr-space-4); box-shadow: var(--rr-shadow-xs);
}
.rr-table td {
    display: flex; justify-content: space-between; align-items: flex-start;
    padding: var(--rr-space-1) 0; border: none; color: var(--rr-text-primary); text-align: right;
    word-break: break-word; overflow-wrap: anywhere;
}
.rr-table td::before {
    content: attr(data-label); font-weight: 600; color: var(--rr-text-muted); font-size: 12px;
    text-transform: uppercase; margin-right: 16px; text-align: left; flex-shrink: 0; width: 100px;
}
.rr-table td > div, .rr-table td > span, .rr-table td > button { text-align: right; flex-grow: 1; display: flex; justify-content: flex-end; }
.rr-table td .rr-btn { min-height: 36px; padding: 0 12px; } /* Smaller button inside mobile table */

/* Desktop Table Enhancement */
@media (min-width: 768px) {
    .rr-table { display: table; }
    .rr-table thead { display: table-header-group; }
    .rr-table tbody { display: table-row-group; }
    .rr-table th {
        background-color: var(--rr-surface-soft); color: var(--rr-text-muted); font-weight: 600;
        padding: var(--rr-space-3) var(--rr-space-6); border-bottom: 1px solid var(--rr-border);
        white-space: nowrap; text-transform: uppercase; font-size: 12px; letter-spacing: 0.05em;
    }
    .rr-table tr {
        display: table-row; margin: 0; padding: 0; border: none; border-radius: 0; box-shadow: none; transition: var(--rr-transition);
    }
    .rr-table tr:hover { background-color: var(--rr-surface-soft); }
    .rr-table td {
        display: table-cell; padding: var(--rr-space-4) var(--rr-space-6); border-bottom: 1px solid var(--rr-border); text-align: left;
    }
    .rr-table td::before { display: none; }
    .rr-table td > div, .rr-table td > span, .rr-table td > button { display: block; text-align: left; justify-content: flex-start; }
    .rr-table td .rr-btn { min-height: 44px; }
}

/* ==========================================================================
   MODALS, DRAWERS & OVERLAYS
   ========================================================================== */
.rr-overlay {
    position: fixed; top: 0; left: 0; right: 0; bottom: 0;
    background-color: rgba(0, 0, 0, 0.6); backdrop-filter: blur(4px);
    z-index: 1050; display: none; opacity: 0; transition: opacity 0.3s;
}
.rr-overlay.show { display: block; opacity: 1; }
/* Prevent body scroll when overlay active */
body.rr-no-scroll { overflow: hidden; }

.rr-modal {
    position: fixed; top: 50%; left: 50%; transform: translate(-50%, -45%) scale(0.95);
    background-color: var(--rr-surface); border-radius: var(--rr-radius-xl); border: 1px solid var(--rr-border);
    box-shadow: var(--rr-shadow-xl); width: calc(100% - 32px); max-width: 500px; z-index: 1060;
    display: none; opacity: 0; transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    max-height: 90vh; display: flex; flex-direction: column; overflow: hidden;
}
.rr-modal:not(.show) { display: none; }
.rr-modal.show { display: flex; opacity: 1; transform: translate(-50%, -50%) scale(1); }

.rr-drawer {
    position: fixed; top: 0; left: 0; height: 100vh; width: min(320px, 86vw);
    background-color: var(--rr-surface); border-right: 1px solid var(--rr-border);
    box-shadow: var(--rr-shadow-xl); z-index: 1060; transform: translateX(-100%); transition: transform 0.3s ease;
    display: flex; flex-direction: column; overflow: hidden;
}
.rr-drawer.show { transform: translateX(0); }

.rr-dialog-header { padding: var(--rr-space-4); border-bottom: 1px solid var(--rr-border); display: flex; justify-content: space-between; align-items: center; }
@media (min-width: 768px) { .rr-dialog-header { padding: var(--rr-space-5) var(--rr-space-6); } }

.rr-dialog-body { padding: var(--rr-space-4); overflow-y: auto; flex-grow: 1; }
@media (min-width: 768px) { .rr-dialog-body { padding: var(--rr-space-6); } }

.rr-dialog-footer { padding: var(--rr-space-4); border-top: 1px solid var(--rr-border); background: var(--rr-surface-soft); display: flex; flex-direction: column; gap: var(--rr-space-3); }
@media (min-width: 480px) { .rr-dialog-footer { flex-direction: row; justify-content: flex-end; } }
@media (min-width: 768px) { .rr-dialog-footer { padding: var(--rr-space-4) var(--rr-space-6); } }

/* ==========================================================================
   TOAST SYSTEM
   ========================================================================== */
.rr-toast-container { position: fixed; bottom: var(--rr-space-4); left: var(--rr-space-4); right: var(--rr-space-4); z-index: 1100; display: flex; flex-direction: column; gap: var(--rr-space-3); pointer-events: none; }
@media (min-width: 480px) { .rr-toast-container { left: auto; right: var(--rr-space-6); bottom: var(--rr-space-6); } }

.rr-toast {
    background-color: var(--rr-surface); border: 1px solid var(--rr-border); padding: var(--rr-space-4);
    border-radius: var(--rr-radius-lg); box-shadow: var(--rr-shadow-lg); display: flex; align-items: flex-start; gap: var(--rr-space-3);
    pointer-events: auto; width: 100%; min-width: 0; max-width: 400px; animation: rrSlideInUp 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}
@media (min-width: 480px) { .rr-toast { animation: rrSlideInRight 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; } }

.rr-toast-icon { flex-shrink: 0; }
.rr-toast-content { flex-grow: 1; min-width: 0; }
.rr-toast-title { font-weight: 700; color: var(--rr-text-primary); margin: 0 0 4px 0; font-size: 14px; }
.rr-toast-msg { color: var(--rr-text-secondary); margin: 0; font-size: 13px; overflow-wrap: anywhere; }

@keyframes rrSlideInUp { from { transform: translateY(120%); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@keyframes rrSlideInRight { from { transform: translateX(120%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
