:root { color-scheme: dark; --bg: var(--tg-theme-bg-color, #17212b); --card: var(--tg-theme-secondary-bg-color, #202b36); --text: var(--tg-theme-text-color, #f4f7fb); --muted: var(--tg-theme-hint-color, #9ba8b4); --accent: var(--tg-theme-button-color, #296ca0); --accent-text: var(--tg-theme-button-text-color, #fff); --danger: #e15c5c; --client-lavender: #ded4f2; --client-lavender-ink: #31274a; --client-violet: #75608f; --client-violet-ink: #fffaff; --client-label: var(--text); --client-copy: var(--muted); --client-textarea: #eee9f5; --client-placeholder: #70667d; }
* { box-sizing: border-box; }
body { margin: 0; min-width: 280px; background: var(--bg); color: var(--text); font: 16px/1.42 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.shell { max-width: 680px; margin: auto; padding: max(16px, env(safe-area-inset-top)) 16px calc(28px + env(safe-area-inset-bottom)); }
.welcome-active { background:#050609; color:#f8f4eb; }
.welcome-active .shell { max-width:none; padding:0; }
.topbar[hidden] { display:none; }
.welcome { position:relative; width:100%; min-height:100svh; overflow:hidden; background:#050609; }
.welcome-visual, .welcome-visual img { display:block; width:100%; height:100%; }
.welcome-visual { position:absolute; inset:0; }
.welcome-visual img { object-fit:cover; object-position:center center; }
.welcome-cta { position:absolute; z-index:1; left:50%; bottom:max(40px, calc(8svh + env(safe-area-inset-bottom))); width:min(70%, 465px); min-height:64px; border:0; border-radius:999px; padding:0; transform:translateX(-50%); appearance:none; background:transparent; box-shadow:none; color:transparent; cursor:pointer; }
.welcome-cta:focus-visible { outline:3px solid #fff; outline-offset:4px; }
.welcome-cta:active { transform:translateX(-50%) translateY(1px); }
@media (min-width:760px) { .welcome { width:min(100%, 507px); margin:0 auto; } }
.client-active .shell { padding-top:max(10px, env(safe-area-inset-top)); }
.client-welcome { position:relative; display:grid; min-height:100svh; overflow:hidden; background:#07090c; color:#fff9ef; }
.client-welcome-visual, .client-welcome-visual img { position:absolute; inset:0; display:block; width:100%; height:100%; }
.client-welcome-visual img { object-fit:cover; object-position:center top; opacity:1; }
.client-welcome::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(5,7,10,.04) 0%,rgba(5,7,10,.08) 45%,rgba(5,7,10,.78) 100%); pointer-events:none; }
.client-welcome-content { position:relative; z-index:1; display:flex; min-height:100svh; flex-direction:column; justify-content:flex-end; gap:20px; padding:max(28px, env(safe-area-inset-top)) 24px max(26px, calc(20px + env(safe-area-inset-bottom))); }
.client-welcome-benefits { display:grid; gap:8px; margin:0; padding:0; list-style:none; font-size:15px; line-height:1.35; text-shadow:0 1px 14px rgba(0,0,0,.72); }
.client-welcome-benefits li { padding-left:18px; position:relative; }.client-welcome-benefits li::before { content:"•"; position:absolute; left:0; color:#eec46e; }
.client-welcome-benefit-title { color:#fff8ec; font-weight:750; font-size:16px; }.client-welcome-benefit-title::before { color:var(--client-lavender) !important; }
.client-welcome-actions { display:grid; gap:10px; }.client-welcome-actions button { min-height:52px; font-size:16px; font-weight:700; }.client-welcome-more { border:1px solid rgba(225,214,244,.86) !important; background:rgba(222,212,242,.94) !important; color:var(--client-lavender-ink) !important; box-shadow:0 8px 20px rgba(0,0,0,.2); backdrop-filter:blur(8px); }.client-welcome-create { border-radius:14px !important; background:var(--client-violet) !important; color:var(--client-violet-ink) !important; box-shadow:0 8px 22px rgba(0,0,0,.3); }
.client-learn-more { overflow-wrap:anywhere; }.client-learn-more .secondary { min-height:44px; }.client-learn-more-section { margin:20px 0; padding:0 0 18px; border-bottom:1px solid rgba(255,255,255,.09); }.client-learn-more-section h2, .client-learn-more-section h3 { margin-top:0; }.client-paid-callout { display:grid; gap:3px; margin-top:13px !important; padding:12px; border-radius:12px; background:rgba(222,212,242,.12); border:1px solid rgba(222,212,242,.24); color:var(--text); }.client-paid-callout span { color:var(--client-copy); }
.topbar { display: flex; align-items: center; gap: 12px; margin: 2px 0 20px; }.brand-mark { width: 42px; height: 42px; display:grid; place-items:center; border-radius:13px; background:var(--accent); color:var(--accent-text); font-weight:800; font-size:22px; }.topbar h1 { font-size:20px; margin:0; }.topbar p { color:var(--muted); margin:1px 0 0; font-size:13px; }
.tabs { display:flex; gap:8px; overflow-x:auto; padding-bottom:12px; }.tab { border:0; border-radius:999px; padding:8px 12px; white-space:nowrap; background:var(--card); color:var(--muted); font:inherit; }.tab.active { background:var(--accent); color:var(--accent-text); }
.screen { display:grid; gap:12px; }.card { background:var(--card); border-radius:16px; padding:16px; box-shadow:0 1px 0 rgba(255,255,255,.04) inset; }.card h2 { font-size:18px; margin:0 0 8px; }.card h3 { font-size:15px; margin:14px 0 7px; }.card p { margin:5px 0; }.muted { color:var(--muted); }.metric { font-size:26px; font-weight:750; }.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(135px,1fr)); gap:10px; }.row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 0; border-top:1px solid rgba(255,255,255,.08); }.row:first-child { border-top:0; }.pill { font-size:12px; border-radius:999px; padding:3px 8px; background:rgba(78,157,216,.2); color:#9dd6ff; }
label { display:grid; gap:5px; color:var(--muted); font-size:13px; margin:10px 0; } input, textarea, select { width:100%; border:1px solid rgba(255,255,255,.12); border-radius:10px; padding:10px; background:rgba(0,0,0,.14); color:var(--text); font:inherit; } textarea { min-height:76px; resize:vertical; } button.action { border:0; border-radius:10px; padding:10px 13px; background:var(--accent); color:var(--accent-text); font:inherit; font-weight:650; } button.secondary { background:transparent; border:1px solid rgba(255,255,255,.18); color:var(--text); }.form-actions { display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }.notice { margin:0 0 12px; border-radius:12px; padding:11px 12px; background:rgba(78,157,216,.18); color:var(--text); }.notice.error { background:rgba(225,92,92,.18); }.empty { text-align:center; padding:30px 14px; color:var(--muted); }.empty h2 { color:var(--text); }.loading { color:var(--muted); padding:32px 4px; }
.city-picker-trigger { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:46px; gap:10px; padding:10px; border:1px solid rgba(255,255,255,.12); border-radius:10px; background:rgba(0,0,0,.14); color:var(--text); font:inherit; text-align:left; cursor:pointer; }.city-picker-trigger span:first-child { min-width:0; overflow-wrap:anywhere; }.city-picker-overlay { position:fixed; z-index:20; inset:0; display:grid; align-items:end; padding:12px; background:rgba(0,0,0,.62); }.city-picker { display:grid; gap:8px; width:min(100%,680px); max-height:min(82svh,720px); margin:0 auto; padding:16px; border-radius:18px; background:var(--card); box-shadow:0 -12px 36px rgba(0,0,0,.35); }.city-picker-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }.city-picker-head h2 { min-width:0; margin:0; font-size:18px; }.city-picker-head .secondary { min-height:40px; white-space:nowrap; }.city-picker-results { display:grid; gap:6px; min-height:60px; max-height:52svh; overflow-y:auto; padding:2px; }.city-picker-results .muted { margin:10px 2px; }.city-picker-result { width:100%; min-height:48px; padding:10px 12px; border:1px solid rgba(255,255,255,.1); border-radius:10px; background:rgba(255,255,255,.035); color:var(--text); font:inherit; text-align:left; overflow-wrap:anywhere; cursor:pointer; }.city-picker-result:focus-visible, .city-picker-result:hover { border-color:var(--accent); outline:none; }.city-chip-list { display:flex; flex-wrap:wrap; gap:6px; }.city-chip { display:inline-flex; align-items:center; max-width:100%; gap:5px; padding:6px 8px; border-radius:999px; background:rgba(78,157,216,.18); color:var(--text); overflow-wrap:anywhere; }.city-chip button { display:grid; place-items:center; width:24px; min-width:24px; height:24px; padding:0; border:0; border-radius:50%; background:rgba(0,0,0,.2); color:var(--text); font:inherit; font-size:18px; line-height:1; cursor:pointer; }
.compact-form-row { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }.compact-form-row label, .client-schedule-row label { min-width:0; }
.client-order-workspace > .muted, .client-orders-empty, .personal-paid-copy { color:var(--client-copy) !important; }.client-order-workspace label, .client-order-workspace .service-type-picker legend { color:var(--client-label); font-weight:500; }
.client-order-workspace { --client-form-gap:10px; }
.client-schedule-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; max-width:100%; gap:var(--client-form-gap); align-items:start; }.client-schedule-row > label { display:grid; grid-template-rows:auto 46px; align-content:start; gap:5px; width:100%; min-width:0; margin:0; }.client-schedule-row select { display:block; width:100%; min-width:0; max-width:100%; min-height:46px; height:46px; padding:8px; border-radius:10px; font-size:14px; box-sizing:border-box; }
.client-schedule-expanded-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; max-width:100%; column-gap:var(--client-form-gap); margin:var(--client-form-gap) 0 0; }.client-schedule-expanded-row > label { display:block; width:100%; min-width:0; max-width:100%; margin:0; }.client-schedule-expanded-date { grid-column:1; }.client-schedule-expanded-time { grid-column:2; }.client-schedule-expanded-row input { display:block; width:100%; min-width:0; min-inline-size:0; max-width:100%; max-inline-size:100%; height:46px; min-height:46px; margin:0; padding:8px 6px; border-radius:10px; box-sizing:border-box; }
.service-type-picker { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--client-form-gap); min-width:0; margin:14px 0 10px; padding:0; border:0; }.service-type-picker legend { grid-column:1/-1; font-size:13px; padding:0; }.service-type { min-width:0; min-height:48px; padding:8px 9px; border:1px solid rgba(222,212,242,.54); border-radius:10px; background:rgba(255,255,255,.055); color:var(--text); font:inherit; font-size:14px; font-weight:650; line-height:1.2; overflow-wrap:normal; word-break:normal; cursor:pointer; }.service-type.active { border-color:var(--client-violet); background:rgba(142,122,170,.30); }.form-error { margin:2px 0 8px; color:#ffb8b8; font-size:13px; }.personal-paid-copy { margin:4px 0 !important; color:var(--client-copy) !important; overflow-wrap:anywhere; }.client-order-workspace textarea { border-color:rgba(222,212,242,.76); background:var(--client-textarea); color:var(--client-lavender-ink); }.client-order-workspace textarea::placeholder { color:var(--client-placeholder); opacity:1; }.client-request-actions .action, .client-request-actions .secondary { min-height:48px; flex:1 1 150px; }.client-active .client-request-actions .secondary { border-color:rgba(225,214,244,.86); background:var(--client-lavender); color:var(--client-lavender-ink); font-weight:700; }.client-active .client-request-actions .action { background:var(--client-violet); color:var(--client-violet-ink); }
@media (max-width:520px) { .client-schedule-expanded-row { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:760px) { .client-welcome { width:min(100%,507px); margin:0 auto; } }
.check { display:block; color:var(--text); font-size:15px; }.check input { width:auto; margin-right:8px; }.photo-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 0; border-top:1px solid rgba(255,255,255,.08); }.photo-row button { padding:6px 8px; }.executor-photo-thumb { width:64px; height:64px; flex:0 0 64px; border-radius:10px; object-fit:cover; background:#eee7fb; }
.row { display:grid; grid-template-columns:minmax(0,1fr) auto; }.row > span { min-width:0; grid-column:1 / -1; }.row strong { display:block; }.row strong small { display:block; margin-top:3px; }.row .pill { grid-column:2; grid-row:2; justify-self:end; margin-top:8px; }.row strong:first-line { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.order-row { width:100%; border:0; background:transparent; color:var(--text); text-align:left; font:inherit; cursor:pointer; }
.photo-add { display:flex; align-items:center; justify-content:center; min-height:44px; cursor:pointer; color:var(--accent-text); }.photo-add input { display:none; }.input-with-unit { display:flex; align-items:center; gap:10px; }.input-with-unit input { min-width:0; flex:1; }.input-with-unit span { color:var(--text); font-weight:650; min-width:18px; }.card label[hidden] { display:none; }.profile-actions .action { flex:1 1 170px; min-height:48px; }.profile-actions .secondary-action { background:transparent; border:1px solid rgba(255,255,255,.24); color:var(--text); }
.executor-active .muted, .executor-active label, .executor-active .city-chip { color:#cbc6d3; }.executor-active .card { min-width:0; overflow:hidden; }.executor-primary { background:#75608f !important; color:#fff !important; }.executor-secondary { border-color:rgba(204,188,231,.8) !important; background:#eee7fb !important; color:#352a45 !important; }.executor-work-toggle { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; margin:10px 0; padding:4px; border-radius:14px; background:#eee7fb; }.executor-work-toggle button { min-height:44px; border:0; border-radius:10px; background:transparent; color:#4a3c5c; font:inherit; font-weight:700; cursor:pointer; }.executor-work-toggle button.is-active { background:#75608f; color:#fff; box-shadow:0 2px 8px rgba(66,48,88,.2); }.executor-work-state { font-weight:700; }.executor-work-state.is-working { color:#74c590; }.executor-work-state.is-paused { color:#c7c1cb; }.executor-access-notice { margin:10px 0; padding:10px; border-radius:10px; background:rgba(117,96,143,.14); color:#ddd3ed; }.executor-profile-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.executor-profile-pair label { min-width:0; }.executor-profile-capability { margin:12px 0; }.capability-pill { display:inline-block; margin:0; padding:8px 11px; border-radius:999px; background:#eee7fb; color:#352a45; font-weight:700; }.executor-profile-preview { margin:14px 0; padding:11px; border:1px solid rgba(204,188,231,.5); border-radius:12px; }.executor-profile-preview summary { min-height:34px; cursor:pointer; color:#eee7fb; font-weight:700; }.executor-profile-preview > div { padding-top:8px; }.executor-work-card .city-chip { background:rgba(161,139,191,.24); }.executor-order h2, .executor-workspace h2 { overflow-wrap:anywhere; }
.executor-active { --executor-copy:var(--text); --executor-muted:var(--muted); --executor-ink:#111111; --executor-surface:#eee7fb; --executor-outline:rgba(126,105,151,.72); }
.executor-active .muted,
.executor-active label,
.executor-active .city-chip,
.executor-active .executor-photo-note { color:var(--executor-muted); }
.executor-active .executor-profile-editor label,
.executor-active .executor-profile-editor h3,
.executor-active .executor-workspace h2 { color:var(--executor-copy); }
.executor-active .executor-profile-editor label { font-weight:400; }
.executor-active .executor-profile-editor h3 { font-weight:700; }
.executor-active .executor-profile-status { color:var(--executor-copy); font-weight:750; }
.executor-active .executor-workspace,
.executor-active .executor-profile-editor,
.executor-active .executor-order,
.executor-active .photo-row { color:var(--executor-copy); }
.executor-active .executor-secondary,
.executor-active .executor-photo-add,
.executor-active .executor-add-city {
  min-height:46px;
  padding:10px 14px;
  border:1px solid var(--executor-outline) !important;
  border-radius:12px;
  background:var(--executor-surface) !important;
  color:var(--executor-ink) !important;
  font-weight:750;
  box-shadow:none;
}
.executor-active .executor-photo-add { display:flex; width:100%; margin:10px 0 6px; }
.executor-active .executor-photo-add.is-loading { opacity:.72; pointer-events:none; }
.executor-profile-preview-photos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:0 0 12px; }
.executor-profile-preview-photo { width:100%; aspect-ratio:3/4; border-radius:10px; object-fit:cover; background:#eee7fb; }
.executor-active .executor-primary { min-height:46px; background:#75608f !important; color:#fff !important; font-weight:750; }
.executor-active .executor-profile-editor textarea {
  border-color:var(--executor-outline);
  background:#f5f0ff;
  color:var(--executor-ink);
}
.executor-active .executor-profile-editor input,
.executor-active .executor-profile-editor select,
.executor-active .executor-profile-editor textarea,
.executor-active .executor-work-card .city-picker-trigger { color:var(--executor-ink); }
.executor-active .executor-profile-editor input::placeholder,
.executor-active .executor-profile-editor textarea::placeholder { color:#4e4657; opacity:1; }
.executor-active .executor-work-card .city-picker-trigger {
  border-color:var(--executor-outline);
  background:#f5f0ff;
}
.executor-active .executor-photo-help { margin:0 0 8px; color:var(--executor-copy); font-weight:650; }
.executor-active .executor-photo-note { margin:0 0 12px; font-size:13px; }
.executor-active .executor-profile-preview { padding:0; overflow:hidden; border-color:var(--executor-outline); background:rgba(238,231,251,.08); }
.executor-active .executor-profile-preview summary {
  display:flex;
  align-items:center;
  min-height:46px;
  padding:0 13px;
  background:var(--executor-surface);
  color:var(--executor-ink);
  font-weight:750;
}
.executor-active .executor-profile-preview > div { padding:11px 13px; color:var(--executor-copy); }
.executor-active .executor-work-state.is-not-ready { color:var(--executor-copy); }
.executor-active .executor-access-notice {
  display:grid;
  gap:3px;
  margin:10px 0;
  padding:9px 11px;
  border:1px solid rgba(204,188,231,.42);
  border-radius:10px;
  background:rgba(117,96,143,.16);
  color:var(--executor-copy);
  font-size:13px;
  line-height:1.35;
}
.executor-active .executor-access-notice strong { color:var(--executor-copy); }
.executor-active .executor-work-card .city-chip { color:var(--executor-copy); }
.executor-active .executor-work-card .city-chip button { color:var(--executor-copy); }
.executor-active .executor-topup { color:var(--executor-copy); }
.executor-active .executor-topup .card { min-width:0; overflow:hidden; }
.executor-active .executor-topup label,
.executor-active .executor-topup h2,
.executor-active .executor-topup h3 { color:var(--executor-copy); }
.executor-active .executor-topup input,
.executor-active .executor-topup textarea { border-color:var(--executor-outline); background:#f5f0ff; color:var(--executor-ink); }
.executor-active .topup-payment-instructions { margin:14px 0; padding:12px; border:1px solid rgba(204,188,231,.5); border-radius:12px; background:rgba(238,231,251,.45); }
.executor-active .topup-payment-instructions h3 { margin-top:0; }
.topup-receipt-state { display:grid; gap:10px; min-width:0; max-width:100%; padding:10px; border:1px solid rgba(204,188,231,.55); border-radius:12px; background:#eee7fb; color:#111111; overflow:hidden; }
.topup-receipt-preview { display:grid; place-items:center; width:100%; height:clamp(180px,48vw,220px); max-width:100%; padding:0; border:0; border-radius:9px; background:#fff; overflow:hidden; cursor:zoom-in; }
.topup-receipt-preview img { display:block; width:100%; height:100%; max-width:100%; max-height:100%; object-fit:contain; object-position:center; }
.topup-receipt-file { display:flex; align-items:center; flex-wrap:wrap; gap:9px; min-width:0; overflow-wrap:anywhere; }
.topup-receipt-file span { min-width:0; flex:1 1 150px; }
.topup-receipt-file .secondary { min-height:42px; margin-left:auto; }
.topup-receipt-viewer { position:fixed; z-index:100; inset:0; display:grid; grid-template-rows:auto minmax(0,1fr); place-items:center; gap:12px; padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom)); background:rgba(0,0,0,.84); }
.topup-receipt-viewer img { display:block; width:100%; height:100%; max-width:min(100%,760px); max-height:calc(100svh - 88px); object-fit:contain; object-position:center; }
.topup-receipt-viewer-close { justify-self:end; min-height:44px; padding:8px 12px; }
@media (max-width:374px) {
  .executor-active .executor-profile-pair { gap:8px; }
  .executor-active .executor-secondary,
  .executor-active .executor-primary { padding-left:10px; padding-right:10px; }
}
.candidate-count { color:var(--accent); padding:4px 0; text-align:left; font:inherit; }.client-order-card.is-interactive { cursor:pointer; transition:background .15s ease, transform .15s ease; }.client-order-card.is-interactive:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }.client-order-card.is-interactive:active { background:rgba(78,157,216,.1); transform:scale(.995); }.candidate-card { overflow:hidden; }.candidate-photos { display:flex; gap:8px; overflow-x:auto; scroll-snap-type:x mandatory; margin:-4px -4px 12px; }.candidate-photos img, .candidate-photo-placeholder { width:min(78vw, 320px); aspect-ratio:3/4; object-fit:cover; border-radius:12px; scroll-snap-align:start; flex:0 0 auto; }.candidate-photo-placeholder { display:grid; place-items:center; padding:12px; text-align:center; background:linear-gradient(110deg, rgba(0,0,0,.14) 30%, rgba(255,255,255,.06) 45%, rgba(0,0,0,.14) 60%); background-size:200% 100%; animation:candidate-photo-loading 1.4s ease-in-out infinite; }.candidate-order-context strong { display:block; }.candidate-order-context small { display:block; margin-top:3px; } @keyframes candidate-photo-loading { to { background-position:-200% 0; } }
.dispatcher-payment-queue { min-width:0; overflow:hidden; }
.dispatcher-payment-card { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; padding:12px 0; border-top:1px solid rgba(255,255,255,.1); }
.dispatcher-payment-card:first-of-type { border-top:0; }
.dispatcher-payment-card span { min-width:0; display:grid; gap:3px; }
.dispatcher-payment-card strong, .dispatcher-payment-card small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dispatcher-payment-card .secondary { min-height:44px; }
.dispatcher-topup-detail { display:grid; gap:12px; min-width:0; }
.dispatcher-topup-fields { display:grid; gap:10px; margin:16px 0; }
.dispatcher-topup-fields div { display:grid; grid-template-columns:minmax(100px,.7fr) minmax(0,1.3fr); gap:10px; padding-top:10px; border-top:1px solid rgba(255,255,255,.1); }
.dispatcher-topup-fields dt { color:var(--muted); }.dispatcher-topup-fields dd { min-width:0; margin:0; overflow-wrap:anywhere; }
.dispatcher-topup-receipt { display:grid; gap:8px; margin:16px 0; padding:12px; border:1px solid rgba(255,255,255,.15); border-radius:12px; }
.dispatcher-topup-receipt h3 { margin:0; }
.dispatcher-topup-receipt-preview { display:grid; place-items:center; width:100%; height:clamp(180px,48vw,220px); max-width:100%; padding:0; border:0; border-radius:9px; background:#fff; overflow:hidden; cursor:zoom-in; }
.dispatcher-topup-receipt-preview img { display:block; width:100%; height:100%; max-width:100%; max-height:100%; object-fit:contain; object-position:center; }
.dispatcher-topup-receipt-viewer { position:fixed; z-index:100; inset:0; display:grid; grid-template-rows:auto minmax(0,1fr); place-items:center; gap:12px; padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom)); background:rgba(0,0,0,.84); }
.dispatcher-topup-receipt-viewer img { display:block; width:100%; height:100%; max-width:min(100%,760px); max-height:calc(100svh - 88px); object-fit:contain; object-position:center; }
.dispatcher-topup-receipt-viewer-close { justify-self:end; min-height:44px; padding:8px 12px; }
.danger-action { background:rgba(225,92,92,.92) !important; color:#fff !important; }.cancel-order { margin-top:8px; color:var(--muted); }
.lifecycle-confirm .form-actions .action, .lifecycle-confirm .form-actions .secondary, [data-client-lifecycle], [data-executor-lifecycle] { min-height:48px; }
.candidate-confirm { margin-top:12px; padding:12px; border-radius:12px; background:rgba(78,157,216,.12); }.selected-state { color:#9dd6ff; font-weight:650; }
.pending-rating-section { overflow:hidden; }.rating-item { margin-top:14px; padding-top:14px; border-top:1px solid rgba(255,255,255,.08); }.rating-item:first-of-type { margin-top:0; }.rating-item > strong { display:block; }.rating-item > strong small { display:block; margin-top:3px; }.rating-form { margin-top:10px; }.rating-form h3 { margin:0 0 8px; }.rating-stars { display:flex; gap:6px; flex-wrap:wrap; }.rating-star { width:48px; min-height:48px; padding:0; border:1px solid rgba(255,255,255,.18); border-radius:12px; background:transparent; color:var(--muted); font-size:28px; line-height:1; cursor:pointer; }.rating-star.is-selected { color:#ffd166; border-color:#ffd166; background:rgba(255,209,102,.12); }.rating-star:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }.rating-comment textarea { max-width:100%; overflow-wrap:anywhere; }.rating-ack { color:#9dd6ff; font-weight:650; margin:12px 0 0; }
.chat-thread { display:grid; gap:8px; max-height:48vh; overflow-y:auto; margin:14px 0; padding:2px; }.chat-message { max-width:84%; padding:9px 11px; border-radius:12px; background:rgba(255,255,255,.07); }.chat-message.own { justify-self:end; background:rgba(78,157,216,.22); }.chat-message small { color:var(--muted); }.chat-message p { white-space:pre-wrap; overflow-wrap:anywhere; }.chat-composer { display:grid; gap:8px; position:sticky; bottom:0; z-index:1; padding-top:8px; background:var(--card); }.chat-composer textarea { min-height:72px; }.chat-composer button:disabled { opacity:.72; }
.dispatcher-workspace, .dispatcher-order, .dispatcher-profile { min-width:0; overflow:hidden; }.dispatcher-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; padding:2px 0; }.dispatcher-tabs .tab { min-width:0; min-height:42px; padding:7px 4px; white-space:normal; font-size:13px; }.dispatcher-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin:10px 0; }.dispatcher-summary span { min-width:0; padding:8px 6px; border-radius:10px; background:rgba(255,255,255,.05); font-size:12px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }.dispatcher-summary b { font-weight:650; }.dispatcher-attention { display:block; width:100%; margin:8px 0; min-height:44px; border:1px solid rgba(255,209,102,.65); border-radius:10px; color:#ffd166; background:rgba(255,209,102,.1); font:inherit; font-weight:700; text-align:left; padding:10px; }.dispatcher-city-grid { display:grid; gap:8px; }.dispatcher-city-card { display:grid; width:100%; gap:7px; padding:12px; border:1px solid rgba(255,255,255,.12); border-radius:12px; background:rgba(255,255,255,.03); color:var(--text); font:inherit; text-align:left; cursor:pointer; }.city-metrics { display:flex; gap:8px; flex-wrap:wrap; color:var(--muted); font-size:13px; }.city-metrics b { color:var(--text); font-weight:600; }.city-deficit { color:#ffd166; font-weight:750; }.dispatcher-section-head { display:flex; justify-content:space-between; align-items:baseline; gap:10px; }.dispatcher-section-head span { color:var(--muted); font-size:13px; white-space:nowrap; }.online-dot { display:inline-block; width:8px; height:8px; border-radius:999px; background:#56d77a; vertical-align:middle; }.dispatcher-filter-row { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; }.filter-chip { min-height:38px; padding:6px 9px; border:1px solid rgba(255,255,255,.18); border-radius:999px; color:var(--muted); background:transparent; font:inherit; font-size:13px; }.filter-chip.active { border-color:var(--accent); background:rgba(78,157,216,.18); color:var(--text); }.dispatcher-companion-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }.dispatcher-companion-tile { display:grid; min-width:0; gap:4px; min-height:224px; padding:9px; border:1px solid rgba(255,255,255,.12); border-radius:13px; color:var(--text); background:rgba(255,255,255,.035); font:inherit; text-align:left; cursor:pointer; }.dispatcher-companion-tile strong, .dispatcher-companion-tile small, .dispatcher-companion-tile b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.dispatcher-companion-tile small, .tile-state { color:var(--muted); font-size:12px; }.dispatcher-companion-tile b { margin-top:auto; font-size:13px; }.tile-photo { display:grid; place-items:center; aspect-ratio:1.2/1; border-radius:9px; background:linear-gradient(135deg,rgba(255,209,102,.26),rgba(78,157,216,.17)); color:var(--muted); }.favorite { color:#ffd166; }.dispatcher-order-head { display:flex; justify-content:space-between; gap:10px; align-items:center; margin-bottom:10px; }.dispatcher-order-head .muted { font-size:13px; text-align:right; }.dispatcher-comment { white-space:pre-wrap; overflow-wrap:anywhere; padding:9px 10px; border-left:2px solid rgba(78,157,216,.6); background:rgba(255,255,255,.035); border-radius:0 8px 8px 0; }.dispatcher-countdown { margin-top:12px !important; padding:11px; border-radius:11px; background:rgba(78,157,216,.14); }.dispatcher-countdown strong { display:block; font-size:28px; letter-spacing:.04em; margin-top:2px; }.dispatcher-manual { color:#ffd166; font-weight:650; }.dispatcher-published { color:#9dd6ff; font-weight:650; }.dispatcher-candidates { display:grid; gap:10px; }.dispatcher-candidate { display:grid; width:100%; gap:3px; padding:14px; text-align:left; color:var(--text); background:var(--card); border:1px solid rgba(255,255,255,.12); border-radius:14px; font:inherit; cursor:pointer; }.dispatcher-candidate:hover, .dispatcher-candidate:focus-visible { border-color:var(--accent); outline:none; }.dispatcher-candidate small { color:var(--muted); overflow-wrap:anywhere; }.dispatcher-candidate[hidden] { display:none; }.dispatcher-pricing details { margin-top:12px; color:var(--muted); }.dispatcher-audit { display:flex; justify-content:space-between; gap:8px; padding:8px 0; border-top:1px solid rgba(255,255,255,.08); font-size:13px; }.dispatcher-price-block { padding:10px; border-radius:12px; background:rgba(255,209,102,.08); }.dispatcher-history-row { display:grid; gap:3px; padding:10px 0; border-top:1px solid rgba(255,255,255,.08); }.dispatcher-history-row small { color:var(--muted); }
@media (max-width:374px) { .shell { padding-left:10px; padding-right:10px; }.card { padding:12px; }.dispatcher-summary span { font-size:11px; }.summary-label { font-size:0; }.summary-label::after { font-size:11px; }.dispatcher-summary span:nth-child(1) .summary-label::after { content:"Кл."; }.dispatcher-summary span:nth-child(2) .summary-label::after { content:"Зак."; }.dispatcher-summary span:nth-child(3) .summary-label::after { content:"Акт."; }.dispatcher-summary span:nth-child(4) .summary-label::after { content:"Комп."; }.dispatcher-summary span:nth-child(5) .summary-label::after { content:"Раб."; }.dispatcher-summary span:nth-child(6) .summary-label::after { content:"Пауза"; }.dispatcher-tabs .tab { font-size:11px; } }
@media (min-width:760px) { .shell { max-width:1040px; }.dispatcher-list { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }.dispatcher-workspace { grid-column:1 / -1; }.dispatcher-order { height:100%; } }
.candidate-profile-open { display:block; width:100%; padding:0; border:0; color:inherit; text-align:left; font:inherit; background:transparent; cursor:pointer; }.candidate-profile-open:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }.public-companion-profile h1 { margin:12px 0 2px; }.profile-gallery { margin:4px 0 16px; }.profile-gallery .profile-photo { width:min(88vw, 440px); }.profile-price { display:grid; gap:5px; margin:18px 0; padding:16px; border-radius:14px; background:linear-gradient(135deg, rgba(255,208,107,.20), rgba(255,255,255,.04)); }.profile-price strong { font-size:22px; }.profile-price small { color:var(--muted); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.dispatcher-tabs { display:flex; flex-wrap:nowrap; gap:4px; }.dispatcher-tabs .tab { flex:1 1 0; white-space:nowrap; overflow:hidden; text-overflow:clip; font-size:12px; }.tab-label-compact { display:none; }
.dispatcher-list { margin:0; }.dispatcher-list .card { min-width:0; }.dispatcher-order .form-actions .action, .dispatcher-order .form-actions .secondary, .dispatcher-price-block .secondary, .dispatcher-note .secondary { min-height:44px; padding:10px 13px; }
.dispatcher-city-select { margin:0 0 10px; }.dispatcher-cities h2, .dispatcher-pricing h2 { margin-bottom:8px; }.dispatcher-price-summary { display:flex; width:100%; min-height:44px; justify-content:space-between; align-items:center; padding:8px 0; border:0; background:transparent; color:var(--text); font:inherit; text-align:left; cursor:pointer; }.dispatcher-price-summary span:last-child { font-size:24px; line-height:1; color:var(--muted); }
.dispatcher-companion-tile { min-height:238px; }.tile-photo { overflow:hidden; background:linear-gradient(135deg,rgba(255,209,102,.18),rgba(78,157,216,.10)); }.tile-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; border-radius:inherit; }.tile-photo:empty::after { content:""; width:34%; aspect-ratio:1; border-radius:50%; background:rgba(255,255,255,.13); box-shadow:0 34px 0 -7px rgba(255,255,255,.09); }.dispatcher-companion-tile strong { font-size:15px; }.dispatcher-companion-tile b { color:var(--text); }
.dispatcher-profile-identity h2 { display:flex; align-items:center; gap:7px; }.favorite-toggle { display:inline-grid; place-items:center; width:44px; min-width:44px; height:44px; padding:0; border:0; border-radius:50%; background:rgba(255,209,102,.12); color:#ffd166; font:inherit; font-size:25px; line-height:1; cursor:pointer; }.favorite-toggle:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }.dispatcher-effective-price { display:block; margin:2px 0 6px; font-size:25px; }.dispatcher-note summary { min-height:44px; display:flex; align-items:center; cursor:pointer; font-weight:650; }.dispatcher-note-preview { overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:1; color:var(--muted); }.dispatcher-note textarea { margin-top:8px; }.dispatcher-note .secondary { margin-top:8px; }
@media (max-width:430px) { .tab-label-full { display:none; }.tab-label-compact { display:inline; }.dispatcher-tabs .tab { font-size:12px; padding-left:2px; padding-right:2px; } }
@media (max-width:374px) { .dispatcher-tabs .tab { font-size:11px; }.dispatcher-filter-row { gap:5px; }.filter-chip { padding-left:8px; padding-right:8px; } }
@media (min-width:760px) { .dispatcher-companion-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }.dispatcher-city-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.dispatcher-pricing { max-width:520px; } }

/* Dispatcher moderation is a distinct mobile workflow.  Keep its type and
   touch targets at normal Mini App scale; it must never inherit compact
   catalogue density intended for secondary operational data. */
.dispatcher-active .dispatcher-summary { gap:10px; margin:12px 0 16px; }
.dispatcher-active .dispatcher-summary .dispatcher-summary-link { display:grid; gap:3px; min-height:72px; padding:11px 10px; border:1px solid rgba(255,255,255,.1); border-radius:12px; color:var(--text); background:rgba(255,255,255,.05); font:inherit; font-size:14px; text-align:left; white-space:normal; cursor:pointer; }
.dispatcher-active .dispatcher-summary b { color:var(--muted); font-size:14px; font-weight:600; line-height:1.15; }
.dispatcher-active .dispatcher-summary strong { color:var(--text); font-size:22px; line-height:1; font-weight:750; }
.dispatcher-active .dispatcher-tabs { gap:7px; margin-top:2px; }
.dispatcher-active .dispatcher-tabs .tab { min-height:48px; padding:10px 6px; font-size:14px; font-weight:650; }
.dispatcher-active .dispatcher-attention { display:grid; gap:10px; margin:0 0 14px; padding:14px; border:1px solid rgba(255,209,102,.65); border-radius:13px; color:var(--text); background:rgba(255,209,102,.1); }
.dispatcher-active .dispatcher-attention h2 { margin:0; color:#ffd166; font-size:17px; }
.dispatcher-active .dispatcher-attention > div { display:grid; gap:8px; }
.dispatcher-active .dispatcher-attention-item { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:46px; padding:10px 11px; border:1px solid rgba(255,255,255,.14); border-radius:10px; background:rgba(0,0,0,.12); color:var(--text); font:inherit; font-size:15px; text-align:left; cursor:pointer; }
.dispatcher-active .dispatcher-attention-item strong { color:#ffd166; font-size:18px; }
.dispatcher-active .dispatcher-filter-row { gap:8px; margin:12px 0; }
.dispatcher-active .filter-chip { min-height:44px; padding:9px 12px; font-size:14px; }
.dispatcher-active .city-metrics { gap:10px; font-size:14px; }
.dispatcher-active .dispatcher-city-card { min-height:124px; padding:14px; font-size:16px; }
.dispatcher-active .dispatcher-city-card strong { font-size:17px; }
.dispatcher-city-heading { margin:16px 0 8px; font-size:15px; color:var(--muted); }
.dispatcher-summary-target { display:grid; gap:8px; margin-bottom:12px; }
.dispatcher-summary-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.moderation-home-card { display:grid; gap:12px; padding:14px 0; border-top:1px solid rgba(255,255,255,.1); }
.moderation-home-card:first-of-type { border-top:0; padding-top:2px; }
.moderation-home-open { display:grid; grid-template-columns:90px minmax(0,1fr); align-items:center; gap:12px; width:100%; padding:0; border:0; background:transparent; color:var(--text); font:inherit; text-align:left; cursor:pointer; }
.moderation-home-open > span { display:grid; gap:4px; min-width:0; }
.moderation-home-open strong { font-size:18px; overflow-wrap:anywhere; }
.moderation-home-open small { color:var(--muted); font-size:15px; }
.moderation-home-photo { width:90px !important; height:116px; min-height:116px; margin:0 !important; border-radius:12px !important; overflow:hidden; }
.moderation-home-photo-empty { display:grid; place-items:center; background:rgba(255,255,255,.06); color:var(--muted); font-size:13px; text-align:center; }
.moderation-home-card .form-actions { margin:0; }
.moderation-home-card .secondary { flex:1 1 180px; min-height:48px; padding:11px 14px; font-size:16px; }
.moderation-detail-header { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:14px 0; }
.moderation-detail-header h2 { margin:0; font-size:26px; line-height:1.12; }
.moderation-main-photo { display:grid; justify-items:center; gap:8px; width:100%; margin:0 auto 20px; padding:0; border:0; background:transparent; color:var(--text); font:inherit; text-align:left; cursor:pointer; touch-action:pan-y; }
.moderation-main-photo .candidate-photo-placeholder, .moderation-gallery-photo { width:min(62%, 360px) !important; max-width:62% !important; min-width:0; min-height:120px; height:auto; aspect-ratio:auto; margin:0 auto !important; padding:0; border-radius:14px; overflow:hidden; }
.moderation-main-photo .candidate-photo-placeholder img, .moderation-gallery-photo img { display:block; width:auto; height:auto; max-width:100%; max-height:56svh; margin:0 auto; object-fit:contain; object-position:center; }
.moderation-main-photo span { color:var(--muted); font-size:16px; line-height:1.3; }
.moderation-main-photo span { width:min(62%, 360px); max-width:62%; }
.moderation-main-photo .moderation-photo-count { color:var(--text); font-size:17px; font-weight:700; }
.moderation-fields { display:grid; gap:0; margin:0; }
.moderation-field { display:grid; gap:5px; padding:14px 0; border-top:1px solid rgba(255,255,255,.1); }
.moderation-field dt { color:var(--muted); font-size:15px; line-height:1.3; }
.moderation-field dd { margin:0; font-size:17px; line-height:1.46; overflow-wrap:anywhere; }
.moderation-detail .dispatcher-internal { margin-top:18px; padding:14px; border-radius:12px; background:rgba(255,255,255,.045); }
.moderation-detail .dispatcher-internal h3, .moderation-detail > h3 { font-size:20px; line-height:1.25; }
.moderation-detail-actions { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; margin-top:20px; }
.moderation-detail-actions .secondary, .moderation-detail-actions .action { width:100%; min-height:52px; padding:12px 16px; font-size:17px; }
.moderation-gallery { display:grid; width:100%; min-width:0; max-width:100%; gap:12px; overflow-x:clip; overscroll-behavior-x:contain; }
.moderation-gallery-count { margin:0; color:var(--text); font-size:17px; font-weight:700; text-align:center; }
.moderation-gallery-photo { border-radius:14px !important; touch-action:pan-y; }
.moderation-gallery-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; }
.moderation-gallery-actions .secondary { min-height:48px; font-size:15px; }
body.moderation-detail-active { overflow-x:hidden; overscroll-behavior-x:none; }
body.moderation-detail-active .shell, body.moderation-detail-active .screen, body.moderation-detail-active .moderation-detail, body.moderation-detail-active .moderation-gallery { min-width:0; max-width:100%; }
.screen.realtime-attention { animation:tempi-realtime-attention .9s ease-out; }
@keyframes tempi-realtime-attention { 0% { box-shadow:inset 0 0 0 0 rgba(190,166,255,0); } 30% { box-shadow:inset 0 0 0 2px rgba(190,166,255,.65); } 100% { box-shadow:inset 0 0 0 0 rgba(190,166,255,0); } }
@media (max-width:430px) {
  .dispatcher-active .dispatcher-tabs .tab { min-height:48px; padding:10px 4px; font-size:13px; }
}
@media (max-width:374px) {
  .dispatcher-active .dispatcher-summary { gap:7px; }
  .dispatcher-active .dispatcher-summary span { min-height:68px; padding:10px 8px; }
  .dispatcher-active .dispatcher-summary b { font-size:13px; }
  .dispatcher-active .dispatcher-summary strong { font-size:20px; }
  .dispatcher-active .dispatcher-tabs .tab { min-height:48px; font-size:12px; }
  .dispatcher-active .filter-chip { min-height:44px; padding-left:9px; padding-right:9px; font-size:13px; }
}

/* Shared participant inbox: full-width, readable conversation targets. */
.participant-messages .row { display:flex; width:100%; min-height:64px; padding:14px 0; border:0; border-radius:0; background:transparent; color:inherit; font:inherit; text-align:left; appearance:none; cursor:pointer; }
.participant-messages .row + .row { border-top:1px solid rgba(128,128,128,.22); }
.participant-messages .row > span { display:flex; flex-direction:column; align-items:flex-start; gap:5px; min-width:0; overflow-wrap:anywhere; }
.participant-messages .row:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.participant-messages .candidate-count { font-weight:600; }
