/* LeadScraper app shell + components. Loaded after the page's inline styles
   and overrides them. Sidebar: full (>1100px), icon rail (769-1100px), drawer (<=768px). */
.ls-app {
  --primary: #c2410c; --primary-dark: #9a3412; --secondary: #9a3412;
  --success: #0a7468; --error: #c0262d; --warning: #b77700; --gray: #5c626b;
  --bg: var(--ls-paper); --card-bg: #fff; --text: var(--ls-ink); --text-muted: #5c626b;
  --border: #ddd8cc; --input-bg: #fff; --sidebar-bg: #1a1d21; --nav-bg: #fff; --modal-bg: #fff;
  --light: #f3f1ec; --dark: #1a1d21;
  --sbw: 248px; --tbh: 60px;
  font-family: var(--ls-body); background: var(--ls-paper); color: var(--ls-ink); font-size: 15px;
}
[data-theme="dark"] .ls-app, [data-theme="dark"].ls-app {
  --bg: #16191c; --card-bg: #22262b; --text: #f3f1ec; --text-muted: #a8a49b; --border: #353a41;
  --input-bg: #1b1f23; --nav-bg: #1d2125; --modal-bg: #22262b; --light: #2b3036; --dark: #f3f1ec;
  --sidebar-bg: #111316; --primary: #e0551c; --gray: #a8a49b;
  background: #16191c; color: #f3f1ec;
}
.ls-app h1, .ls-app h2, .ls-app h3, .ls-app h4 { font-family: var(--ls-head); letter-spacing: -0.01em; }

/* ---------- Top bar ---------- */
.ls-app .top-nav { position: fixed; top: 0; left: var(--sbw); right: 0; height: var(--tbh); width: auto; padding: 0 24px; display: flex; align-items: center; gap: 14px; background: var(--nav-bg); border-bottom: 1.5px solid var(--border); box-shadow: none; z-index: 900; }
.ls-app .tb-title { font-family: var(--ls-narrow); font-size: 15px; font-weight: 600; display: flex; gap: 8px; align-items: center; min-width: 0; }
.ls-app .tb-crumb { color: var(--text-muted); }
.ls-app .tb-sep { color: var(--border); }
.ls-app #tbPage { color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ls-app .user-menu { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.ls-app .tb-new { display: inline-flex; align-items: center; gap: 7px; height: 38px; padding: 0 14px; font-family: var(--ls-head); font-weight: 700; font-size: 14px; background: var(--ls-orange); color: var(--ls-ink); border: 1.5px solid var(--ls-ink); border-radius: var(--ls-radius); box-shadow: 2px 2px 0 var(--ls-ink); cursor: pointer; }
.ls-app .tb-new:hover { background: var(--ls-orange-press); }
.ls-app .tb-new .ic { width: 16px; height: 16px; }
.ls-app .theme-toggle { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; padding: 0; background: transparent; color: var(--text); border: 1.5px solid var(--border); border-radius: var(--ls-radius); cursor: pointer; font-size: 0; }
.ls-app .theme-toggle:hover { border-color: var(--text); }
.ls-app .user-info { display: flex; align-items: center; gap: 10px; padding-left: 10px; border-left: 1.5px solid var(--border); }
.ls-app .user-avatar { width: 34px; height: 34px; border-radius: 6px; background: var(--ls-teal); color: #fff; font-family: var(--ls-head); font-weight: 800; font-size: 15px; border: 1.5px solid var(--ls-ink); }
.ls-app .user-name { font-weight: 600; font-size: 14px; line-height: 1.2; }
.ls-app .user-email { font-size: 12.5px; color: var(--text-muted); }
.ls-app .logout-btn { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 12px; background: transparent; color: var(--text); border: 1.5px solid var(--border); border-radius: var(--ls-radius); font-family: var(--ls-narrow); font-weight: 600; font-size: 14px; cursor: pointer; }
.ls-app .logout-btn:hover { border-color: var(--error); color: var(--error); background: transparent; }
.ls-app .logout-btn .ic { width: 17px; height: 17px; }
.ls-app .mobile-menu-btn { display: none; width: 40px; height: 40px; align-items: center; justify-content: center; background: transparent; border: 1.5px solid var(--border); border-radius: var(--ls-radius); color: var(--text); cursor: pointer; padding: 0; font-size: 0; }

/* ---------- Sidebar ---------- */
.ls-app .main-container { margin-top: var(--tbh); min-height: calc(100vh - var(--tbh)); display: block; }
.ls-app .sidebar { position: fixed; top: 0; left: 0; bottom: 0; height: 100vh; width: var(--sbw); background: var(--sidebar-bg); color: #e9e5dc; border-right: 0; padding: 0; display: flex; flex-direction: column; overflow-y: auto; z-index: 1000; }
.ls-app .sb-brand { height: var(--tbh); display: flex; align-items: center; padding: 0 18px; border-bottom: 1px solid #2c3137; flex: none; }
.ls-app .sb-brand .ls-brand { color: #fff; }
.ls-app .sb-brand .ls-brand b { color: var(--ls-orange); }
.ls-app .sb-brand .ls-brand svg rect { fill: #FF5A1F; }
.ls-app .sb-brand .ls-brand svg path { fill: #1A1D21; }
.ls-app .sb-brand .ls-brand svg circle { fill: #FF5A1F; }
.ls-app .sidebar nav { padding: 10px 10px 16px; flex: 1; }
.ls-app .nav-menu { list-style: none; margin: 0; padding: 0; }
.ls-app .sb-group { font-family: var(--ls-narrow); font-size: 11.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #8d9198; padding: 16px 10px 6px; }
.ls-app .sb-group:first-child { padding-top: 8px; }
.ls-app .nav-item { width: 100%; display: flex; align-items: center; gap: 12px; padding: 9px 10px; margin: 1px 0; border: 0; border-left: 0; border-radius: var(--ls-radius); background: transparent; color: #c9c5bb; font: 500 14.5px var(--ls-body); text-align: left; text-decoration: none; cursor: pointer; position: relative; }
.ls-app .nav-item .ic { width: 19px; height: 19px; flex: none; color: #9aa0a7; }
.ls-app .nav-item:hover { background: #24282e; color: #fff; }
.ls-app .nav-item:hover .ic { color: #fff; }
.ls-app .nav-item.active { background: #2a2f36; color: #fff; font-weight: 600; }
.ls-app .nav-item.active .ic { color: var(--ls-orange); }
.ls-app .nav-item.active::before { content: ""; position: absolute; left: -10px; top: 7px; bottom: 7px; width: 4px; border-radius: 0 3px 3px 0; background: var(--ls-orange); }
.ls-app .nav-item:focus-visible { box-shadow: 0 0 0 2px #ff8a5c; outline: none; }
.ls-app .nav-admin { color: #ffb08f; margin-top: 8px; }

.ls-app .subscription-box { position: static; margin: 0 12px 14px; padding: 14px; background: #24282e; border: 1px solid #353a41; border-radius: var(--ls-radius-lg); color: #e9e5dc; flex: none; }
.ls-app .sb-usage-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.ls-app .sb-usage-title { font-family: var(--ls-narrow); font-weight: 600; font-size: 13px; letter-spacing: .04em; color: #c9c5bb; }
.ls-app .plan-badge { margin: 0; background: #3a3f46; color: #fff; border-radius: 4px; padding: 2px 7px; font-family: var(--ls-narrow); font-size: 11.5px; letter-spacing: .06em; }
.ls-app .plan-badge.pro { background: var(--ls-orange); color: var(--ls-ink); }
.ls-app .usage-info { font-family: var(--ls-narrow); font-size: 13.5px; margin-bottom: 10px; color: #e9e5dc; }
.ls-app .usage-bar-small { height: 6px; background: #3a3f46; border-radius: 3px; margin-top: 5px; }
.ls-app .usage-fill-small { background: var(--ls-teal); }
.ls-app .upgrade-btn { display: block; text-align: center; background: var(--ls-orange); color: var(--ls-ink); border-radius: var(--ls-radius); padding: 9px; font-family: var(--ls-head); font-weight: 700; font-size: 14px; text-decoration: none; }
.ls-app .upgrade-btn:hover { transform: none; background: var(--ls-orange-press); }
.ls-app .upgrade-btn.hidden { display: none; }
.ls-app .buy-more-btn { width: 100%; margin-top: 8px; padding: 9px; background: transparent; color: #fff; border: 1.5px solid #6b7078; border-radius: var(--ls-radius); font-family: var(--ls-head); font-weight: 700; font-size: 14px; cursor: pointer; }

/* ---------- Content ---------- */
.ls-app .content { margin-left: var(--sbw); padding: 28px 32px 56px; max-width: none; }
.ls-app .page-header { margin-bottom: 22px; }
.ls-app .page-header h1 { font-size: 30px; font-weight: 800; color: var(--text); margin-bottom: 4px; }
.ls-app .page-header p { color: var(--text-muted); font-size: 15px; }
.ls-app .scraper-container { background: var(--card-bg); border: 1.5px solid var(--border); border-radius: var(--ls-radius-lg); box-shadow: none; padding: 24px; }
.ls-app .scraper-container h3 { font-size: 18px; font-weight: 800; }
.ls-search-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; align-items: start; }
.ls-area { position: sticky; top: calc(var(--tbh) + 20px); background: var(--card-bg); border: 1.5px solid var(--ls-ink); border-radius: var(--ls-radius-lg); overflow: hidden; box-shadow: 4px 4px 0 var(--ls-ink); }
[data-theme="dark"] .ls-area { border-color: var(--border); box-shadow: none; }
.ls-area-map svg { display: block; width: 100%; height: 170px; }
[data-theme="dark"] .ls-area-map svg { filter: brightness(.8); }
.ls-area-body { padding: 16px 18px 18px; border-top: 1.5px solid var(--border); }
.ls-area-k { font-family: var(--ls-narrow); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.ls-area-v { font-family: var(--ls-head); font-weight: 700; font-size: 17px; margin: 2px 0 12px !important; word-break: break-word; }
.ls-area-tips { list-style: none; margin: 4px 0 0; padding: 12px 0 0; border-top: 1px dashed var(--border); font-size: 13.5px; color: var(--text-muted); display: grid; gap: 6px; }
.ls-area-tips li { padding-left: 16px; position: relative; }
.ls-area-tips li::before { content: ""; position: absolute; left: 0; top: 7px; width: 7px; height: 7px; border-radius: 50%; background: var(--ls-teal); }

/* Forms */
.ls-app label { font-family: var(--ls-narrow); font-weight: 600; font-size: 14px; letter-spacing: .02em; color: var(--text); margin-bottom: 6px; }
.ls-app input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), .ls-app select, .ls-app textarea { border: 1.5px solid var(--border); border-radius: var(--ls-radius); padding: 10px 12px; font-family: var(--ls-body); font-size: 15px; background: var(--input-bg); color: var(--text); }
.ls-app input:focus, .ls-app select:focus, .ls-app textarea:focus { border-color: var(--ls-ink); box-shadow: 0 0 0 3px var(--ls-orange-tint); outline: none; }
[data-theme="dark"] .ls-app input:focus, [data-theme="dark"] .ls-app select:focus { border-color: var(--ls-orange); }
.ls-app input[type="checkbox"] { accent-color: #c2410c; width: 16px; height: 16px; }
.ls-app .helper-text { font-size: 13px; color: var(--text-muted); }
.ls-app .form-group { margin-bottom: 16px; }

/* Tabs: segmented control */
.ls-app .tabs { display: inline-flex; gap: 0; padding: 3px; background: var(--light); border: 1.5px solid var(--border); border-radius: 8px; margin-bottom: 20px; flex-wrap: wrap; }
.ls-app .tab { flex: none; padding: 8px 16px; border: 0; border-radius: 6px; background: transparent; color: var(--text-muted); font-family: var(--ls-head); font-weight: 700; font-size: 14px; }
.ls-app .tab.active { background: var(--card-bg); color: var(--text); box-shadow: 0 0 0 1.5px var(--ls-ink); }
[data-theme="dark"] .ls-app .tab.active { box-shadow: 0 0 0 1.5px var(--ls-orange); }
.ls-app .tab:hover:not(.active) { background: transparent; color: var(--text); }
.ls-app .pro-badge { background: var(--ls-ink); color: #fff; font-family: var(--ls-narrow); font-size: 10.5px; letter-spacing: .08em; border-radius: 3px; padding: 2px 6px; font-weight: 700; }
[data-theme="dark"] .ls-app .pro-badge { background: var(--ls-orange); color: var(--ls-ink); }
.ls-app .city-tag { background: var(--light); border: 1px solid var(--border); border-radius: 4px; font-family: var(--ls-narrow); color: var(--text); }
.ls-app .city-preview { border-radius: var(--ls-radius); border: 1.5px dashed var(--border); background: transparent; }

/* Buttons */
.ls-app .btn { background: var(--ls-orange); color: var(--ls-ink); border: 1.5px solid var(--ls-ink); border-radius: var(--ls-radius); box-shadow: 2px 2px 0 var(--ls-ink); font-family: var(--ls-head); font-weight: 700; font-size: 15px; padding: 11px 20px; }
.ls-app .btn:hover { transform: none; background: var(--ls-orange-press); box-shadow: 2px 2px 0 var(--ls-ink); }
.ls-app .btn:active { transform: translate(1px, 1px); box-shadow: 1px 1px 0 var(--ls-ink); }
.ls-app .btn[style*="background"] { color: #fff; }
.ls-app .btn:disabled { background: var(--light); color: var(--text-muted); border-color: var(--border); box-shadow: none; }
.ls-app .stop-btn { background: var(--card-bg); color: var(--error); border-color: var(--error); box-shadow: none; }
.ls-app .stop-btn:hover { background: var(--ls-red-tint); }
.ls-app .download-btn { background: var(--ls-teal-text); color: #fff; border: 1.5px solid var(--ls-ink); border-radius: var(--ls-radius); font-family: var(--ls-head); font-weight: 700; }
.ls-app .compact-btn { border-radius: var(--ls-radius); font-family: var(--ls-head); font-weight: 700; }
.ls-app .compact-btn.primary { background: var(--ls-orange); color: var(--ls-ink); border: 1.5px solid var(--ls-ink); }
.ls-app .compact-btn.pro { background: var(--ls-ink); color: #fff; }
.ls-app .compact-btn.success { background: var(--ls-teal-text); }
.ls-app .scrape-btn { border-radius: 5px; border: 1.5px solid var(--border); background: var(--card-bg); color: var(--text); font-family: var(--ls-narrow); font-weight: 600; font-size: 13.5px; }
.ls-app .scrape-btn:hover { border-color: var(--text); transform: none; }
.ls-app .scrape-btn.download { background: var(--ls-teal-text); border-color: var(--ls-teal-text); color: #fff; }
.ls-app .scrape-btn.delete { background: transparent; border-color: var(--border); color: var(--error); }
.ls-app .scrape-btn.delete:hover { background: var(--ls-red-tint); border-color: var(--error); }
.ls-app .scrape-btn[style*="background"] { border-color: transparent; }

/* Status, progress, logs */
.ls-app .status { border-radius: var(--ls-radius); border-left: 4px solid; font-size: 14px; }
.ls-app .status.info { background: var(--ls-amber-tint); color: #7a4d00; border-color: #d99a1e; }
.ls-app .status.success { background: var(--ls-teal-tint); color: var(--ls-teal-text); border-color: var(--ls-teal); }
.ls-app .status.error { background: var(--ls-red-tint); color: var(--error); border-color: var(--error); }
[data-theme="dark"] .ls-app .status.info { color: #f5c46a; }
[data-theme="dark"] .ls-app .status.error { color: #ff9a9a; }
.ls-app .progress-bar { height: 10px; border-radius: 5px; background: var(--light); border: 1px solid var(--border); }
.ls-app .progress-fill { background: repeating-linear-gradient(-45deg, #ff5a1f 0 10px, #ff7a45 10px 20px); }
.ls-app .progress-log { background: #15181b; color: #c9c5bb; border-radius: var(--ls-radius); font-family: var(--ls-narrow); font-size: 13.5px; border: 1.5px solid #2c3137; }
.ls-app .progress-log .log-entry.success { color: #4fd3c2; }
.ls-app .progress-log .log-entry.error { color: #ff8f8f; }

/* Results, stats, cards */
.ls-app .results h3 { font-size: 18px; }
.ls-app .stat-box, .ls-app .stat-card { background: var(--light); border: 1.5px solid var(--border); border-radius: var(--ls-radius); box-shadow: none; }
.ls-app .stat-card:hover { transform: none; }
.ls-app .stat-number, .ls-app .stat-card .stat-number { font-family: var(--ls-head); font-weight: 800; color: var(--text); letter-spacing: -0.02em; }
.ls-app .stat-card.success .stat-number { color: var(--ls-teal-text); }
.ls-app .stat-card.error .stat-number { color: var(--error); }
.ls-app .stat-label, .ls-app .stat-card .stat-label { font-family: var(--ls-narrow); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; font-size: 12px; color: var(--text-muted); }
.ls-app .scrape-card { background: var(--card-bg); border: 1.5px solid var(--border); border-radius: var(--ls-radius-lg); box-shadow: none; }
.ls-app .scrape-card:hover { border-color: var(--text); transform: none; box-shadow: none; }
.ls-app .scrape-name { font-family: var(--ls-head); font-weight: 700; word-break: break-all; }
.ls-app .scrape-date { font-family: var(--ls-narrow); color: var(--text-muted); }
.ls-app .scrape-stat-number { font-family: var(--ls-head); font-weight: 800; color: var(--text); }
.ls-app .scrape-stat-label { font-family: var(--ls-narrow); text-transform: uppercase; letter-spacing: .05em; font-size: 11.5px; }
.ls-app .email-files-section h3 { font-size: 17px; }
.ls-app .removal-reason, .ls-app .removal-reason-compact { background: var(--light); border-radius: 4px; font-family: var(--ls-narrow); }
.ls-app .email-status.valid { background: var(--ls-teal-tint); color: var(--ls-teal-text); }
.ls-app .email-status.invalid { background: var(--ls-red-tint); color: var(--error); }
.ls-app .compact-checkbox, .ls-app .checkbox-label { border-radius: var(--ls-radius); border: 1.5px solid var(--border); background: var(--card-bg); font-family: var(--ls-body); }
.ls-app .compact-checkbox:hover, .ls-app .checkbox-label:hover { border-color: var(--text); background: var(--card-bg); }
.ls-app .option-group h4 { font-family: var(--ls-narrow); text-transform: uppercase; letter-spacing: .06em; font-size: 12.5px; color: var(--text-muted); }

/* Empty state: map pin drawn in CSS */
.ls-app .empty-state { padding: 48px 20px; border: 1.5px dashed var(--border); border-radius: var(--ls-radius-lg); background: var(--card-bg); }
.ls-app .empty-state .icon { width: 56px; height: 56px; margin: 0 auto 14px; font-size: 0; background: no-repeat center/56px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 56'%3E%3Crect x='4' y='34' width='48' height='14' rx='7' fill='%23E9E5DC'/%3E%3Cpath d='M28 6a13 13 0 0 0-13 13c0 10 13 23 13 23s13-13 13-23A13 13 0 0 0 28 6Z' fill='%23FF5A1F' stroke='%231A1D21' stroke-width='2'/%3E%3Ccircle cx='28' cy='19' r='5' fill='%23fff'/%3E%3C/svg%3E"); }
.ls-app .empty-state h3 { font-size: 19px; font-weight: 800; }
.ls-app .empty-state p { color: var(--text-muted); }

/* Modals + preview tables */
.ls-app .preview-modal { background: rgba(26, 29, 33, .55); }
.ls-app .preview-modal-content { background: var(--modal-bg); border: 1.5px solid var(--ls-ink); border-radius: var(--ls-radius-lg); box-shadow: 6px 6px 0 var(--ls-ink); }
[data-theme="dark"] .ls-app .preview-modal-content { border-color: var(--border); box-shadow: none; }
.ls-app .preview-modal-header { border-bottom: 1.5px solid var(--border); }
.ls-app .preview-modal-header h2 { font-size: 20px; font-weight: 800; }
.ls-app .preview-table { font-family: var(--ls-narrow); font-size: 14.5px; }
.ls-app .preview-table th { background: var(--light); color: var(--text-muted); text-transform: uppercase; letter-spacing: .06em; font-size: 12px; font-weight: 600; position: sticky; top: 0; }
.ls-app .preview-table td { border-bottom: 1px solid var(--border); }
.ls-app .preview-table tr:hover td { background: var(--ls-orange-tint); }
.ls-app .preview-table a { color: var(--primary); }
.ls-app table { font-family: var(--ls-narrow); }
.ls-app code, .ls-app pre { font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; }

/* Generic inline surfaces that used fixed light colours */
.ls-app [style*="background: #f8f9fa"], .ls-app [style*="background:#f8f9fa"] { background: var(--light) !important; }
.ls-app a { color: var(--primary); }
.ls-app .sidebar a, .ls-app .upgrade-btn { color: inherit; }
.ls-app .sidebar .upgrade-btn { color: var(--ls-ink); }
.ls-app .sidebar .nav-item { color: #c9c5bb; }
.ls-app .sidebar .nav-item:hover, .ls-app .sidebar .nav-item.active { color: #fff; }
.ls-app .sidebar .nav-admin { color: #ffb08f; }
.ls-app :focus-visible { outline: 2px solid var(--ls-ink); outline-offset: 2px; }
[data-theme="dark"] .ls-app :focus-visible { outline-color: #ff8a5c; }

/* ---------- Icon rail (tablet) ---------- */
@media (max-width: 1100px) and (min-width: 769px) {
  .ls-app { --sbw: 72px; }
  .ls-app .sidebar .nav-label, .ls-app .sb-group, .ls-app .subscription-box { display: none; }
  .ls-app .sb-brand { justify-content: center; padding: 0; }
  .ls-app .nav-item { justify-content: center; padding: 11px 0; }
  .ls-app .nav-item .ic { width: 21px; height: 21px; }
  .ls-app .nav-item.active::before { left: -10px; }
  .ls-app .user-details { display: none; }
  .ls-search-grid { grid-template-columns: 1fr; }
  .ls-area { position: static; display: grid; grid-template-columns: 260px 1fr; }
  .ls-area-map svg { height: 100%; min-height: 170px; }
  .ls-area-body { border-top: 0; border-left: 1.5px solid var(--border); }
}

/* ---------- Drawer (phone) ---------- */
@media (max-width: 768px) {
  .ls-app { --sbw: 0px; }
  .ls-app .top-nav { left: 0; padding: 0 12px; gap: 10px; }
  .ls-app .mobile-menu-btn { display: inline-flex; }
  .ls-app .sidebar { width: 272px; left: -280px; top: 0; height: 100vh; transition: left .25s ease; z-index: 1100; }
  .ls-app .sidebar.open { left: 0; box-shadow: 0 0 0 100vw rgba(0,0,0,0); }
  .ls-app .sidebar-overlay { top: 0; z-index: 1050; background: rgba(26,29,33,.5); }
  .ls-app .content { margin-left: 0; padding: 18px 14px 48px; }
  .ls-app .tb-crumb, .ls-app .tb-sep, .ls-app .user-details, .ls-app .tb-new span, .ls-app .logout-btn span, .ls-app .user-info { display: none; }
  .ls-app .tb-new { padding: 0 11px; }
  .ls-app .logout-btn { padding: 0 10px; }
  .ls-app .page-header h1 { font-size: 25px; }
  .ls-app .scraper-container { padding: 16px; }
  .ls-search-grid { grid-template-columns: 1fr; }
  .ls-area { position: static; }
  .ls-area-map svg { height: 120px; }
  .ls-app .tabs { display: flex; }
  .ls-app .tab { flex: 1; min-width: 0; padding: 8px 6px; text-align: center; }
  .ls-app .preview-modal-content { box-shadow: none; }
  .ls-app pre, .ls-app code { white-space: pre-wrap; word-break: break-all; }
  .ls-app table { display: block; overflow-x: auto; max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .ls-app .sidebar { transition: none; } }

/* ---------- Admin page ---------- */
.ls-admin .main-content { margin-left: var(--sbw); margin-top: var(--tbh); padding: 28px 32px 56px; }
.ls-admin [id^="sec-"], .ls-admin #overview { scroll-margin-top: calc(var(--tbh) + 16px); }
.ls-admin .sb-brand { gap: 10px; }
.ls-admin .admin-badge { font-family: var(--ls-narrow); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; background: var(--ls-orange); color: var(--ls-ink); padding: 2px 6px; border-radius: 3px; }
.ls-admin .stats-grid { gap: 14px; }
.ls-admin .stat-card { background: var(--card-bg); border: 1.5px solid var(--border); border-top-width: 4px; border-radius: var(--ls-radius); box-shadow: none; padding: 18px; }
.ls-admin .stat-card.primary { border-top-color: var(--ls-orange); }
.ls-admin .stat-card.success { border-top-color: var(--ls-teal); }
.ls-admin .stat-card.warning { border-top-color: #d99a1e; }
.ls-admin .stat-card.info { border-top-color: var(--ls-ink-2); }
.ls-admin .stat-icon:empty { display: none; }
.ls-admin .stat-value { font-family: var(--ls-head); font-weight: 800; letter-spacing: -0.02em; color: var(--text); }
.ls-admin .stat-label { font-family: var(--ls-narrow); text-transform: uppercase; letter-spacing: .05em; font-size: 12px; color: var(--text-muted); }
.ls-admin .stat-change.up { color: var(--ls-teal-text); }
.ls-admin .section { background: var(--card-bg); border: 1.5px solid var(--border); border-radius: var(--ls-radius-lg); box-shadow: none; }
.ls-admin .section-header h2 { font-size: 18px; font-weight: 800; }
.ls-admin th { background: var(--light); color: var(--text-muted); font-family: var(--ls-narrow); text-transform: uppercase; letter-spacing: .06em; font-size: 12px; font-weight: 600; }
.ls-admin td { border-bottom: 1px solid var(--border); font-size: 14.5px; }
.ls-admin tr:hover td { background: var(--ls-orange-tint); }
.ls-admin .status-badge { border-radius: 4px; font-family: var(--ls-narrow); font-weight: 600; letter-spacing: .02em; }
.ls-admin .status-badge.active, .ls-admin .status-badge.completed, .ls-admin .status-badge.successful { background: var(--ls-teal-tint); color: var(--ls-teal-text); }
.ls-admin .status-badge.professional, .ls-admin .status-badge.pro { background: var(--ls-orange-tint); color: var(--ls-orange-text); }
.ls-admin .status-badge.failed { background: var(--ls-red-tint); color: var(--error); }
.ls-admin .btn-primary { background: var(--ls-orange); color: var(--ls-ink); border: 1.5px solid var(--ls-ink); }
.ls-admin .filters input, .ls-admin .filters select { border-radius: var(--ls-radius); }
.ls-admin .pagination button { border-radius: 5px; font-family: var(--ls-narrow); }
.ls-admin .pagination button.active { background: var(--ls-ink); color: #fff; border-color: var(--ls-ink); }
.ls-admin .activity-icon { border-radius: 6px; }
.ls-admin .access-denied .icon { width: 56px; height: 56px; border-radius: 50%; background: var(--ls-orange); border: 1.5px solid var(--ls-ink); }
.ls-admin .table-container { overflow-x: auto; }
@media (max-width: 1100px) and (min-width: 769px) { .ls-admin .sb-brand .admin-badge { display: none; } }
@media (max-width: 768px) {
  .ls-admin .main-content { margin-left: 0; padding: 18px 14px 48px; }
  .ls-admin .two-col { grid-template-columns: 1fr; }
  .ls-admin .stats-grid { grid-template-columns: 1fr 1fr !important; }
  .ls-admin .section { padding: 16px; overflow: hidden; }
  .ls-admin .filters { flex-wrap: wrap; }
  .ls-admin .filters input, .ls-admin .filters select { min-width: 0; max-width: 100%; }
}
