:root {
  --bg: #f7f7fa;
  --bg-soft: #ffffff;
  --surface: #f7f7fa;
  --surface-2: #f2eefb;
  --panel: #f7f7fa;
  --paper: #ffffff;
  --white: #ffffff;
  --ink: #202231;
  --ink-soft: #646778;
  --muted: #6b6e7b;
  --line: #e7e5ec;
  --dark-line: #e7e5ec;
  --mint: #6d4bd1;
  --mint-strong: #6d4bd1;
  --gold: #6d4bd1;
  --blue: #2496ea;
  --purple: #6d4bd1;
  --purple-deep: #5532b5;
  --purple-soft: #f2eefb;
  --purple-line: #ddd6f3;
  --success: #047857;
  --success-soft: #ecfdf5;
  --warning: #b45309;
  --warning-soft: #fff7ed;
  --danger: #dc2626;
  --danger-soft: #fef2f2;
  --logo-blue: #1a4993;
  --logo-sky: #2496ea;
  --shadow: 0 18px 50px rgba(57, 44, 96, .08);
  --radius: 12px;
  --font-display: "Avenir Next", "Segoe UI Variable", "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-body: "Avenir Next", "Segoe UI Variable", "PingFang SC", "Microsoft YaHei", sans-serif;
  --display: var(--font-display);
  --body: var(--font-body);
}

body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
}

button, a, input, select, textarea { touch-action: manipulation; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible {
  outline-color: var(--purple);
}

.report-detail-section { padding:20px; overflow-wrap:anywhere; }
.report-detail-section details { margin:10px 0; padding:12px; border:1px solid #e7e5ec; border-radius:8px; }
.report-detail-section summary { cursor:pointer; font-weight:600; }
.report-detail-section pre { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; font-size:12px; }
.report-detail-section table { width:100%; table-layout:fixed; font-size:12px; }
.report-detail-section td,.report-detail-section th { padding:8px; vertical-align:top; }
.report-detail-section a { color:#5532b5; }
#scanElapsed,#deliveryNotice { font-size:12px; line-height:1.8; color:#646778; }

/* Workspace shell */
.action-copy pre {white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:12px;max-height:300px;overflow-y:auto;background:#f7f7fa;padding:12px;}
.action-copy details {margin-top:10px;}
.action-copy button {padding:8px 12px;margin:6px 0;border:1px solid #ddd6f3;border-radius:6px;background:#f2eefb;color:#5532b5;cursor:pointer;}
.delivery-card blockquote {margin:12px 0;padding:12px;border-left:3px solid #8f6fe8;background:#f7f7fa;overflow-wrap:anywhere;}
.ambient { opacity: .16; filter: blur(110px); }
.ambient-one { background: #dcd3f5; }
.ambient-two { background: #d8edfc; }
.app-shell { grid-template-columns: 230px minmax(0, 1fr); }
.sidebar {
  padding: 24px 14px 16px;
  border-right: 1px solid var(--line);
  background: rgba(255, 255, 255, .94);
  color: var(--ink);
  backdrop-filter: blur(20px);
}
.brand {
  display: block;
  padding: 0 10px 20px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
}
.product-logo { display: block; height: auto; object-fit: contain; }
.product-logo-sidebar { width: 198px; max-width: 100%; }
.brand-lockup { display: flex; align-items: center; gap: 8px; min-width: 0; }
.brand-logo { display: block; width: 110px; height: auto; }
.brand-product { color: var(--purple); font-size: 17px; letter-spacing: -.2px; }
.brand > small { color: #858797; font-size: 10px; letter-spacing: 1.4px; }
.nav-list { gap: 5px; margin-top: 27px; }
.nav-item {
  min-height: 46px;
  border: 1px solid transparent;
  border-radius: 9px;
  color: #55596b;
  padding: 0 12px;
  font-weight: 600;
}
.nav-item svg { color: #777b90; }
.nav-item:hover { color: var(--purple-deep); background: #f8f6fd; border-color: #eee9f8; }
.nav-item.active {
  color: var(--purple-deep);
  background: var(--purple-soft);
  border-color: #ebe5f8;
  box-shadow: inset 3px 0 0 var(--purple);
}
.nav-item.active svg { color: var(--purple); }
.coverage-card {
  border-color: var(--line);
  background: #faf9fc;
}
.coverage-card b { color: #393b49; }
.coverage-card small, .account-button small, .account-button svg { color: #858797; }
.pulse { background: var(--success); box-shadow: 0 0 0 5px rgba(4, 120, 87, .09); }
.powered-lockup { border: 1px solid var(--line); box-shadow: none; }
.account-button { color: var(--ink); }
.account-button:hover { background: #f6f4fb; }
.avatar { background: var(--purple); color: #fff; }

.main-content { background: var(--bg); }
.topbar {
  min-height: 76px;
  padding: 16px clamp(24px, 3vw, 48px);
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, .88);
  color: var(--ink);
  backdrop-filter: blur(18px);
}
.topbar h1 { font-size: 20px; letter-spacing: 0; }
.eyebrow, .step-kicker { color: var(--purple); }
.quota-badge {
  border-color: var(--purple-line);
  color: #66687a;
  background: #faf9fd;
}
.quota-badge:hover { background: var(--purple-soft); }
.quota-badge b { color: var(--purple-deep); }
.icon-button, .mobile-menu { border-color: var(--line); color: #5f6271; background: #fff; }
.notification-dot { background: var(--purple); }

.search-stage {
  min-height: auto;
  max-width: 1380px;
  margin: 0 auto;
  padding: 34px clamp(20px, 3.2vw, 48px) 48px;
  color: var(--ink);
}
.setup-stage { padding-top: 34px; }
.setup-layout { grid-template-columns: 1fr; gap: 22px; }
.setup-copy { position: static; display: grid; grid-template-columns: minmax(280px, .8fr) minmax(420px, 1.2fr); column-gap: 52px; align-items: end; }
.setup-copy .step-kicker, .setup-copy h2 { grid-column: 1; }
.setup-copy h2 { margin: 7px 0 0; font-size: clamp(27px, 2.2vw, 34px); line-height: 1.2; letter-spacing: -.6px; }
.setup-copy > p { grid-column: 2; grid-row: 1 / span 2; max-width: 690px; color: var(--ink-soft); font-size: 13px; }
.neutral-rule {
  grid-column: 1 / -1;
  max-width: none;
  margin-top: 12px;
  padding: 11px 13px;
  border-color: var(--purple-line);
  background: #faf9fd;
  color: #6d6f7e;
}
.neutral-rule svg { color: var(--purple); }
.neutral-rule b { display: inline; margin-right: 7px; color: var(--ink); }
.market-form {
  padding: clamp(20px, 2.5vw, 32px);
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 8px 30px rgba(57, 44, 96, .055);
}
.form-section-title span { font-size: 16px; }
.profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 17px; }
.field-group { min-width: 0; color: #464958; font-size: 11px; font-weight: 700; }
.field-group > span { display: block; margin-bottom: 7px; }
.field-group .field-with-icon, .field-group > select, .field-group > textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fcfcfd;
  color: var(--ink);
}
.field-group > select { min-height: 48px; padding: 0 11px; }
.field-group > textarea { min-height: 116px; padding: 10px 11px; resize: vertical; line-height: 1.65; }
.field-group .field-with-icon:focus-within, .field-group > select:focus, .field-group > textarea:focus,
.rate-grid > label:focus-within { border-color: #9b85dc; box-shadow: 0 0 0 3px rgba(109, 75, 209, .09); }
.field-with-icon svg { color: #858797; }
.competitor-helper b { color: var(--purple-deep); }
.rate-grid { gap: 12px; }
.rate-grid > label { border-color: var(--line); background: #fcfcfd; }
.rate-grid b { color: var(--purple); }
.model-choice-grid { grid-template-columns: repeat(4, 1fr); gap: 9px; }
.model-choice-grid span { border-color: var(--line); background: #fcfcfd; }
.model-choice-grid input:checked + span {
  border-color: #9b85dc;
  background: var(--purple-soft);
  box-shadow: inset 0 0 0 1px rgba(109, 75, 209, .12);
}
.model-choice-grid input:disabled + span { cursor: not-allowed; opacity: .48; background: #f5f5f7; }
.setup-submit, .primary-button {
  color: #fff;
  background: var(--purple);
  box-shadow: 0 7px 18px rgba(85, 50, 181, .17);
}
.setup-submit:hover, .primary-button:hover { background: var(--purple-deep); }
.setup-submit span { color: #fff; }
.sample-row { color: #7b7d8b; }
.sample-chip { border-color: var(--line); color: #626575; background: #fff; }
.sample-chip:hover { color: var(--purple-deep); border-color: #b7a8e5; background: var(--purple-soft); }
.method-strip { width: 100%; margin-top: 28px; padding: 15px 18px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.method-strip span { color: var(--purple); }
.method-strip small { color: #838594; }

/* Reports, dialogs and account */
.report-section { background: var(--bg); }
.report-toolbar, .context-bar { border-color: var(--line); }
.report-toolbar { background: #fff; }
.hotel-monogram, .account-avatar { background: var(--purple-soft); color: var(--purple-deep); }
.identity-line span, .status-pill.good { border-color: #c9eedf; color: var(--success); background: var(--success-soft); }
.data-mode-badge, .status-pill.warn { color: var(--warning); background: var(--warning-soft); }
.hero-score-card { background: #262035; }
.hero-score-card::after { background: rgba(109, 75, 209, .12); border-color: rgba(157, 133, 220, .24); }
.orbit-value { stroke: #8f6fe8; filter: drop-shadow(0 0 8px rgba(109, 75, 209, .24)); }
.trend, .score-foot button { color: #b9a7ed; }
.score-verdict .grade { color: #fff; background: var(--purple); }
.dot.green { background: var(--success); }
.dot.amber { background: var(--warning); }
.hero-score-card, .metric-card, .panel { border-color: var(--line); border-radius: 12px; background-color: #fff; box-shadow: 0 4px 20px rgba(57, 44, 96, .035); }
.hero-score-card { background-color: #262035; }
.metric-icon.mint { color: var(--purple-deep); background: var(--purple-soft); }
.metric-icon.gold { color: var(--warning); background: var(--warning-soft); }
.metric-icon.blue { color: var(--logo-blue); background: #edf6fd; }
.mini-progress::-webkit-progress-bar, .dimension-progress::-webkit-progress-bar, .engine-progress::-webkit-progress-bar, .quota-card progress::-webkit-progress-bar, .scan-progress::-webkit-progress-bar { background: #eceaf0; }
.mini-progress::-webkit-progress-value, .dimension-progress::-webkit-progress-value, .engine-progress::-webkit-progress-value { background: var(--purple); }
.mini-progress::-moz-progress-bar, .dimension-progress::-moz-progress-bar, .engine-progress::-moz-progress-bar { background: var(--purple); }
.mini-progress.gold::-webkit-progress-value, .dimension-progress.mid::-webkit-progress-value { background: var(--warning); }
.mini-progress.blue::-webkit-progress-value { background: var(--logo-sky); }
.text-button, .dimension-row:hover .dimension-name, .entity-row em, .account-actions a, .history-item strong { color: var(--purple-deep); }
.engine-logo, .coverage-core { background: #312a43; }
.engine-insight { color: #505363; background: #f4f1fb; }
.engine-insight svg { color: var(--purple); }
.coverage-map::before, .coverage-map::after { border-color: #d9d4e5; }
.modal { background: rgba(30, 25, 43, .62); }
.modal-card, .edit-card { border: 1px solid var(--line); background: var(--bg); }
.choice-grid input:checked + span { background: var(--purple); border-color: var(--purple); }
.quota-card { color: #fff; background: #2b2440; }
.quota-card strong b { color: #b9a7ed; }
.quota-card progress::-webkit-progress-value { background: #8f6fe8; }
.run-cost-card { border-color: var(--purple-line); background: var(--purple-soft); }
.plan-hotel-confirmation { margin-top: 13px; }
.plan-hotel-confirmation .plan-section-head { margin-top: 0; }
.cost-hotel-list { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 9px 0 0; padding: 0; list-style: none; }
.cost-hotel-list li { min-width: 0; display: grid; grid-template-columns: 52px minmax(0,1fr); gap: 8px; align-items: center; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.cost-hotel-list span { color: #777989; font-size: 8px; }
.cost-hotel-list b { min-width: 0; overflow: hidden; color: var(--ink); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.cost-formula .cost-total b, .balance-quote strong, .prompt-preview b, .neutral-check { color: var(--purple-deep); }
.provider-chip.ready i { background: var(--success); }
.prompt-preview, .ledger-item { background: #f7f6fa; }
.ledger-item > span { color: var(--purple-deep); }
.toast { background: #2b2440; border-color: rgba(185, 167, 237, .3); }
.scanner span { color: #c5b6ee; }
.scanner i { background: #8f6fe8; }

/* Authentication */
.auth-story {
  background:
    radial-gradient(circle at 80% 18%, rgba(109, 75, 209, .11), transparent 35%),
    linear-gradient(145deg, #f7f7fa, #f1eef9);
  color: var(--ink);
}
.auth-story::after { border-color: rgba(109, 75, 209, .1); box-shadow: 0 0 0 80px rgba(109,75,209,.018), 0 0 0 160px rgba(36,150,234,.012); }
.auth-brand { display: block; color: var(--ink); }
.auth-product-logo { width: 238px; max-width: 76vw; }
.auth-brand-lockup { display: flex; align-items: center; gap: 8px; }
.auth-brand-logo { display: block; width: 116px; height: auto; }
.auth-brand-product { color: var(--purple); font-size: 18px; }
.auth-brand > small { color: #858797; font-size: 10px; letter-spacing: 1.4px; }
.story-content > p:last-child, .story-proof span { color: #676a79; }
.story-proof { border-color: var(--line); }
.story-proof strong { color: var(--purple); }
.auth-panel { border-left: 1px solid var(--line); background: #fff; }
.auth-tabs button.active { border-color: var(--purple); }
.auth-form > input, .password-field, .auth-result { border-color: var(--line); background: #fcfcfd; }
.password-toggle, .forgot-link, .back-link, .auth-result a { color: var(--purple-deep); }
.submit-button { background: var(--purple); box-shadow: 0 10px 24px rgba(85, 50, 181, .15); }
.submit-button:hover { background: var(--purple-deep); }
.security-note svg { color: var(--purple); }
.auth-result.success { border-color: #c9eedf; background: var(--success-soft); }
.auth-result.warning { border-color: #fecaca; background: var(--danger-soft); }
.auth-result.neutral { border-color: var(--purple-line); background: var(--purple-soft); }

/* Admin */
.admin-header { border-color: var(--line); background: #fff; color: var(--ink); }
.admin-brand { display: block; }
.admin-product-logo { width: 204px; max-width: 48vw; }
.admin-brand-logo { display: block; width: 108px; height: auto; }
.admin-brand-product { color: var(--purple); font-weight: 700; }
.admin-brand small { color: #858797; }
.admin-header a, .admin-header button { color: #5d6070; }
.admin-header button { border-color: var(--line); background: #fff; }
.admin-main { background: var(--bg); }
.admin-title .eyebrow { color: var(--purple); }
.admin-title > button, .title-actions button, .stat-card, .users-panel, .edit-card { background: #fff; }
.title-actions .create-button, .save-button { border-color: var(--purple); background: var(--purple); color: #fff; }
th { background: #f4f2f8; color: #686b7a; }
.role-pill.admin { color: var(--purple-deep); background: var(--purple-soft); }
.status-pill.active { color: var(--success); background: var(--success-soft); }
.usage progress::-webkit-progress-value { background: var(--purple); }
.edit-button { color: var(--purple-deep); }
.provider-finance-section { border-color: #3b3450; background: #262035; box-shadow: 0 14px 36px rgba(44, 35, 68, .1); }
.superadmin-mark { border-color: rgba(185, 167, 237, .45); color: #cbbcf2; }
.finance-refresh { border-color: rgba(185, 167, 237, .28); background: rgba(143,111,232,.09); color: #d7ccf5; }
.finance-refresh:hover { background: rgba(143,111,232,.16); }
.finance-card.state-healthy { box-shadow: inset 0 3px 0 var(--success); }
.finance-card.state-low { box-shadow: inset 0 3px 0 var(--warning); }
.provider-monogram { background: #f3f0fa; color: var(--purple-deep); }
.provider-usage-table { background: #2b2440; }
.provider-usage-table th { background: #342b4a; }
.provider-usage-table td:first-child { color: #c5b6ee; }

@media (max-width: 860px) {
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { width: 246px; box-shadow: 18px 0 45px rgba(42, 34, 63, .16); }
  .setup-copy { display: block; }
  .setup-copy > p { margin-top: 12px; }
  .profile-grid { grid-template-columns: 1fr; }
  .model-choice-grid { grid-template-columns: repeat(2, 1fr); }
  .cost-hotel-list { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .topbar { min-height: 72px; padding: 14px 16px; }
  .topbar > div:first-of-type { min-width: 0; flex: 1; }
  .topbar h1 { overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
  .search-stage, .setup-stage { padding: 26px 16px 40px; }
  .setup-copy h2 { font-size: 29px; }
  .market-form { padding: 18px 14px; }
  .model-choice-grid { grid-template-columns: 1fr 1fr; }
  .method-strip { padding: 16px; }
}
