/* Rescue Roofing — owner hub */
.rr-login-gate, .rr-hub-app {
	--rr-red: #C8102E;
	--rr-bg: #0d1424;
	--rr-surface: #1a2236;
	--rr-surface2: #0f172a;
	--rr-border: #243050;
	--rr-text: #e2e8f0;
	--rr-muted: #94a3b8;
	--rr-dim: #64748b;
	--rr-shift: #7c3aed;
	--rr-booked: #38bdf8;
	--rr-warm: #f59e0b;
	--rr-green: #16a34a;
	font-family: 'DM Sans', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
	color: var(--rr-text);
}
.rr-login-gate *, .rr-hub-app *, .rr-login-gate *::before, .rr-hub-app *::before { box-sizing: border-box; }

/* Login */
.rr-login-gate { display: flex; align-items: center; justify-content: center; min-height: 70vh; background: var(--rr-bg); padding: 40px 16px; border-radius: 14px; }
.rr-login-box { background: var(--rr-surface); border: 1px solid var(--rr-border); border-radius: 18px; padding: 44px 36px; width: 100%; max-width: 380px; box-shadow: 0 24px 60px rgba(0,0,0,.5); text-align: center; }
.rr-login-logo-icon { width: 56px; height: 56px; background: var(--rr-red); border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 26px; margin: 0 auto 16px; }
.rr-login-title { font-family: 'Bebas Neue', Impact, sans-serif; font-size: 26px; letter-spacing: 2px; color: #fff; margin-bottom: 4px; }
.rr-login-sub { font-size: 12px; color: var(--rr-dim); margin-bottom: 32px; }
.rr-login-label { display: block; text-align: left; font-size: 11px; font-weight: 700; color: var(--rr-dim); letter-spacing: .5px; text-transform: uppercase; margin-bottom: 6px; }
.rr-login-input-wrap { position: relative; margin-bottom: 10px; }
.rr-login-input { width: 100%; background: var(--rr-surface2); border: 1px solid var(--rr-border); border-radius: 10px; padding: 13px 44px 13px 14px; color: var(--rr-text); font-family: inherit; font-size: 15px; outline: none; transition: border-color .2s; letter-spacing: 1px; }
.rr-login-input:focus { border-color: var(--rr-red); }
.rr-login-eye { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: none; border: none; color: var(--rr-dim); cursor: pointer; font-size: 16px; padding: 4px; }
.rr-login-btn { width: 100%; background: var(--rr-red); color: #fff; border: none; border-radius: 10px; padding: 14px; cursor: pointer; font-family: 'Bebas Neue', Impact, sans-serif; font-size: 18px; letter-spacing: 1.5px; transition: background .2s; margin-top: 6px; }
.rr-login-btn:hover { background: #a50d24; }
.rr-login-error { background: #2d1a1a; border: 1px solid var(--rr-red); border-radius: 8px; color: #fca5a5; font-size: 12px; padding: 10px 14px; margin-bottom: 14px; }
.rr-login-footer { margin-top: 24px; font-size: 10px; color: #334155; }

/* Hub */
.rr-hub-app { background: var(--rr-bg); border-radius: 14px; overflow: hidden; }
.rr-header { background: #111827; border-bottom: 1px solid #1e2d45; padding: 14px 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.rr-header-logo { display: flex; align-items: center; gap: 10px; }
.rr-logo-icon { width: 36px; height: 36px; background: var(--rr-red); border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 18px; }
.rr-logo-name { font-family: 'Bebas Neue', Impact, sans-serif; font-size: 17px; letter-spacing: 1.5px; color: #fff; }
.rr-logo-sub { font-size: 10px; color: var(--rr-dim); }
.rr-header-contact { text-align: right; font-size: 11px; }
.rr-logout-link { color: var(--rr-dim); text-decoration: none; font-weight: 600; }
.rr-logout-link:hover { color: var(--rr-red); }

.rr-nav { background: #111827; border-bottom: 1px solid #1e2d45; padding: 8px 16px; display: flex; gap: 4px; overflow-x: auto; }
.rr-tab-btn { padding: 9px 16px; background: transparent; color: var(--rr-muted); border: none; border-radius: 8px; cursor: pointer; font-family: inherit; font-weight: 500; font-size: 13px; white-space: nowrap; transition: all .2s; display: flex; align-items: center; gap: 6px; }
.rr-tab-btn.active { background: var(--rr-red); color: #fff; font-weight: 700; }
.rr-badge { background: rgba(255,255,255,0.2); border-radius: 10px; padding: 1px 7px; font-size: 11px; }

.rr-content { padding: 20px 16px; max-width: 980px; margin: 0 auto; }
.rr-panel { display: none; }
.rr-panel.active { display: block; }

.rr-card { background: var(--rr-surface); border: 1px solid var(--rr-border); border-radius: 14px; padding: 22px 20px; }
.rr-section-title { font-family: 'Bebas Neue', Impact, sans-serif; font-size: 20px; color: #fff; letter-spacing: 1.5px; margin-bottom: 18px; border-left: 3px solid var(--rr-red); padding-left: 12px; }

/* Lead cards */
.rr-lead-card { background: var(--rr-surface2); border-radius: 10px; padding: 14px 16px; margin-bottom: 10px; border-left: 3px solid var(--rr-dim); }
.rr-lead-card.hot { border-left-color: var(--rr-red); }
.rr-lead-card.warm { border-left-color: var(--rr-warm); }
.rr-lead-name { font-weight: 700; margin-bottom: 2px; color: var(--rr-text); }
.rr-lead-meta { color: var(--rr-muted); font-size: 11px; line-height: 1.8; }
.rr-lead-meta span { margin-right: 12px; }
.rr-lead-issues { display: flex; flex-wrap: wrap; gap: 5px; margin: 8px 0; }
.rr-lead-issue-tag { background: #1e2d45; border-radius: 4px; padding: 2px 8px; font-size: 10px; color: var(--rr-booked); font-weight: 600; }
.rr-tier { font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 4px; display: inline-block; }
.rr-tier.hot { background: #2d1a1a; color: var(--rr-red); }
.rr-tier.warm { background: #2d2010; color: var(--rr-warm); }
.rr-tier.cool { background: var(--rr-surface); color: var(--rr-dim); }
.rr-lead-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.rr-btn-action { background: var(--rr-surface); border: 1px solid var(--rr-border); border-radius: 6px; padding: 7px 14px; cursor: pointer; font-family: inherit; font-size: 12px; color: var(--rr-text); }
.rr-btn-action:hover { border-color: var(--rr-red); color: var(--rr-red); }
.rr-btn-action.primary { background: var(--rr-red); border-color: var(--rr-red); color: #fff; }
.rr-btn-action.primary:hover { background: #a50d24; color: #fff; }
.rr-btn-action.danger:hover { border-color: #ef4444; color: #ef4444; }

.rr-lead-stage { display: inline-block; background: var(--rr-surface); border-radius: 4px; padding: 3px 8px; font-size: 11px; font-weight: 700; color: var(--rr-text); }
.rr-pipeline-hint { text-align: center; color: var(--rr-dim); font-size: 11px; margin-top: 4px; }

/* Calendar in hub */
.rr-cal-nav { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; flex-wrap: wrap; }
.rr-cal-nav-btn { background: var(--rr-surface2); border: 1px solid var(--rr-border); border-radius: 6px; padding: 5px 12px; color: var(--rr-muted); cursor: pointer; font-size: 16px; }
.rr-cal-nav-btn:hover { border-color: var(--rr-red); color: var(--rr-red); }
.rr-cal-month { font-family: 'Bebas Neue', Impact, sans-serif; font-size: 20px; letter-spacing: 1px; color: var(--rr-text); }
.rr-cal-legend { margin-left: auto; display: flex; gap: 12px; font-size: 11px; color: var(--rr-dim); flex-wrap: wrap; }
.rr-hub-grid, .rr-shift-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; margin-bottom: 18px; }
.rr-hub-grid .rr-day, .rr-shift-grid .rr-day { padding: 10px 2px; border-radius: 8px; font-size: 13px; font-weight: 600; border: 1px solid transparent; cursor: pointer; background: var(--rr-surface2); color: #cbd5e1; text-align: center; transition: all .15s; line-height: 1.3; }
.rr-hub-grid .rr-day.shift, .rr-shift-grid .rr-day.shift { background: #1e1b2e; color: var(--rr-shift); border-color: var(--rr-shift); }
.rr-hub-grid .rr-day.booked { background: #162032; color: var(--rr-booked); border-color: var(--rr-booked); }
.rr-hub-grid .rr-day.empty, .rr-shift-grid .rr-day.empty { background: transparent; border: none; cursor: default; }
.rr-hub-grid .rr-day.today, .rr-shift-grid .rr-day.today { outline: 2px solid var(--rr-red); }
.rr-hub-grid .rr-day .day-bookings { font-size: 9px; color: var(--rr-booked); display: block; margin-top: 2px; }

#rr-hub-day-detail { background: var(--rr-surface2); border-radius: 10px; padding: 16px; margin-top: 12px; display: none; }
#rr-hub-day-detail.show { display: block; }
.rr-day-detail-title { font-family: 'Bebas Neue', Impact, sans-serif; font-size: 16px; letter-spacing: 1px; margin-bottom: 10px; color: #fff; }
