/*
File: /apps/assets/sots.css
Purpose: Canonical SOTS unified application styling
Version: v8.119.59

Changelog:
- v8.119.59: Inbound Picture / No picture on line message badges.
- v8.119.58: OpCon thread Copy picker menu; mobile off-screen sidebar ignores touches; hide floating copy icon.
- v8.119.57: Collapsed disposition textarea clips overflow (one-line list rows).
- v8.119.56: Collapsed list rows cap disposition to one line; seven-line grow only when row is expanded or editing.
- v8.119.55: Collapsed disposition wrap capped; v2 expand prefs reset (rows no longer stuck open from old localStorage).
- v8.119.54: Collapsed people rows keep disposition notes to one line (not full textarea height).
- v8.119.53: Keep misc notes body hidden when row is expanded but misc fold is closed.
- v8.119.52: OpCon list Misc notes collapsed by default (toggle); disposition field always visible on rows.
- v8.119.51: OpCon mobile thread composer taller default; resize handle stays visible while focused.
- v8.119.50: Quick pad save status in modal header (database-backed pad).
- v8.119.49: List disposition box one line until content wraps; no 72px edit minimum.
- v8.119.48: List disposition Save overlays top-right on the field; autosave stamp only when non-empty.
- v8.119.47: Quick pad modal fixed positioning when portaled to document.body.
- v8.119.46: OpCon Quick pad modal window (scratch text over OpCon).
- v8.119.45: OpCon mobile thread composer taller default (min-height) before drag-resize.
- v8.119.44: Discovery Grid campaign modal stacks above Focus (z-index above operator-focus-modal).
- v8.119.43: OpCon Discovery Grid resizable modal window (not sidebar iframe).
- v8.119.42: OpCon campaign grid mode gives sidebar iframe flex height (Contacts table visible).
- v8.119.41: Craigslist campaign People list / Discovery Grid toggle; grid host in OpCon sidebar.
- v8.119.40: Mine card misc/disposition spacing; hide stray Ways row divider; thread Notes bar hidden on Mine.
- v8.119.39: Mine misc notes collapsed by default; tighter category-to-disposition spacing on list cards.
- v8.119.38: Mine misc/disposition Save on top row; taller misc notes; disposition save head on list rows.
- v8.119.37: Pinned My Contact Card shows all three owner phone lines even when row is collapsed.
- v8.119.36: OpCon list Misc notes kicker line on contact rows; Mine card notes blocks stay visible when pinned.
- v8.119.35: My Contact Card shows Misc + Disposition note editors on the pinned row; three phone lines only.
- v8.119.34: OpCon list Misc (M) and Disposition (D) note icon buttons with popover; Mine card shows owner lines once.
- v8.119.33: OpCon message delivery (Sent/Delivered) spans content column beside select checkbox.
- v8.119.32: OpCon suggest-reply chip beside copy chat; composer AI chip styling.
- v8.119.31: OpCon bulk Campaign picker full width with min tap target (no flex collapse).
- v8.119.30: OpCon phone rows stack Trestle demo line under each number (not inline with G/msg/call).
- v8.119.29: OpCon people list uses expanded card shell for all normal contacts; boot disposition field visible.
- v8.119.28: OpCon Categories panel create-top block and campaign strip New button spacing.
- v8.119.27: Keep Contact row More menu visible on Automotive mechanic shops list.
- v8.119.26: Mechanic shop rows show disposition band in All conversations; per-row is-opcon-mechanic-shop layout.
- v8.119.25: OpCon Trestle phone labels fall back from ticket demo; label text no longer flex-shrinks to one letter.
- v8.119.22: Empty disposition box height from placeholder wrap measure (drop fixed three-line CSS).
- v8.119.21: Empty disposition placeholder uses a fixed three-line height (no scrollHeight inflate).
- v8.119.20: Disposition note boxes size to content (min height fits placeholder; list cap 120px).
- v8.119.19: OpCon disposition notes: fixed-height scroll box, Save text link under field, stable layout while typing.
- v8.119.18: Focus case history fields use fixed-height scroll areas; save stamp sits in a compact row under each field.

Changelog:
- v8.119.17: Mechanic list always shows category chips; disposition notes autosave quietly with compact empty height.
- v8.119.16: Mechanic disposition row Save button and status line under the note field.
- v8.119.15: OpCon thread header category chips (tap opens Categories panel when a contact is open).
- v8.119.14: Mechanic campaign ruled-out badge and row tint; hide Reach/Park/campaign submenus in slim Contact menu.
- v8.119.13: Focus Case histories Dated log and Contacts text areas (plain text, per-field save).
- v8.119.12: Retired Mark chip row stays hidden ([hidden] wins over gender-toggle flex).
- v8.119.11: Multi category load spinner; sidebar overflow-x hidden (stray vertical line).
- v8.119.10: OpCon contact categories cluster borders; no double border on category summary.
- v8.119.9: OpCon people list meta (N shown of total, Show all); campaign bulk action hint text.
- v8.119.8: OpCon category chips (Not categorized) open the Categories panel on click.
- v8.119.7: OpCon per-contact Categories panel (sheet, checklist, manage taxonomy).
- v8.119.6: OpCon people list category row (hidden until Show categories); chips and Not categorized state.
- v8.119.5: OpCon uses OPERATOR strip Focus; hide duplicate header Focus; campaign Focus button styling.
- v8.119.4: Empty disposition notes stay compact when campaign browse auto-expands rows; header Focus on OpCon operator bar.
- v8.119.3: OpCon Focus is a full primary button on the right of the sidebar toolbar (not in campaign row or header).
- v8.119.2: OpCon header Focus icon restored; empty disposition notes stay one line; collapsed note max height capped.
- v8.119.1: Trestle beside name is plain muted m/f + age (no chip styling).
- v8.119.0: Trestle gender and age range chip beside OpCon contact name.
- v8.118.99: OpCon mark chip uses control height (24px desktop, 32px phone); unset mark + is easier to tap.
- v8.118.98: Row menu collapsible sections and top phone sheet; identity i on phone rows.
- v8.118.97: Extra margin between people-row name and last-activity line.
- v8.118.96: Mark-only picker sheet scrolls on phone; dim backdrop tap to dismiss.
- v8.118.95: Phone OpCon Mark chip is a larger tap target (28px).
- v8.118.94: Collapsed rows list every phone and email; last activity wraps with To/From; disposition min one line.
- v8.118.93: OpCon last-activity line; tighter trailing chips; disposition notes full width; gap before Reach row.
- v8.118.92: OpCon list shows mark chip on name line; collapsed rows show email+label (phones stay on activity line).
- v8.118.91: Collapsed list removes flex gap between Last in/out and phones/emails; Origin line stays visible.
- v8.118.90: Mine and Simulator stay one-line collapsed; hide empty Last in/out rows; tighter collapsed card spacing.
- v8.118.89: OpCon list shows phones and emails on every row; disposition notes sit below them; categories picker footer stays inside the panel.
- v8.118.87: OpCon list names wrap up to three lines (~100 characters) without widening the people list.
- v8.118.86: Head removal disposition aligns left with card details; small gap under name only (no blank line).
- v8.118.85: Head removal disposition notes span the card width (under avatar through near the list scrollbar).
- v8.118.83: Automotive mechanic shops use one card layout for active and eliminated rows; retired compact logged summary mode.
- v8.118.82: Head removal eliminated rows collapse to summary only; full notes and phones show on expand (matches active shop cards).
- v8.118.81: Head removal logged rows keep phone line for call-back; phone number opens dialer; Focus campaign details collapse under title.
- v8.118.80: Disposition notes placeholder names the field; more space under contact name before notes box.
- v8.118.79: OpCon note field spacing under name row; row time tooltip shows sort source after last-activity fix.
- v8.118.78: OpCon pinned rows (Mine, Simulator) show Pinned badge; wider trailing reserve on disposition rows; visitor time no longer overlaps chips.
- v8.118.77: OpCon written disposition keeps full card width when expanded; shared textarea styling on all lanes.
- v8.118.76: OpCon written disposition drops duplicate label; note field spans full card width and grows when expanded.
- v8.118.75: Focus Campaigns fold label stays Campaigns; campaign title returns inside the expanded body.
- v8.118.74: Focus campaign fold is the campaign itself (title on summary); Start, tools, and Call brief sit directly under it with no Work sub-fold.
- v8.118.73: Focus disclosure chevron on every details summary at any nesting depth (Clips, Campaigns, Work, clip areas, OUT OF FOCUS).
- v8.118.72: Focus passthrough centers on viewport (slightly above mid); filter bar no longer paints over Clips; modal moved out of workspace isolation.
- v8.118.71: Head removal collapsed call targets hide disposition box until expand or active row; logged rows stay snippet-only.
- v8.118.70: Head removal logged shops collapse to disposition snippet; phones hidden until expand; Add shop button styling.
- v8.118.69: Head removal OpCon list is note-only (no Reach status menu); labeled disposition always visible on collapsed rows.
- v8.118.68: OpCon campaign Reach: written disposition row first; done/dnc shows disposition preview on collapsed rows; Murano Eliminated link in campaign toolbar.
- v8.118.67: Focus open uses a lighter veil; all people rows get uniform redact slabs under Focus.
- v8.118.66: /operator/focus page stacks Focus over fully redacted OpCon embed; embed mode hides duplicate Focus chrome.
- v8.118.65: OpCon thread bubbles preserve paragraph blank lines (pre-wrap on message text).
- v8.118.64: Identity Phone lookup badges (Live external / Cached external / Internal), section headers, Fresh external dip button.
- v8.118.63: Focus links open in movable popup windows; Quick dump removed; Clips shows areas with delete and Misc add line.
- v8.118.62: Focus panel layout: ChatGPT top button, In focus first, compact collapsed Case histories, Clips, Resources, Return/Park. Case histories drag reorder.
- v8.118.61: Focus case fields use native textareas, per-field save status + Save links, reliable paste.
- v8.118.60: Focus Case histories fields grow with content (up to ~48vh); misc notes no longer capped at 220px.
- v8.118.59: Focus modal wider on desktop (720px).
- v8.118.58: Focus park queue rows, return-to row, F sidebar badge, Focus count chip.
- v8.118.57: Focus panel one line per item; expandable detail block only when opened.
- v8.118.56: Focus panel active/done sections; done list collapsed by default.
- v8.118.55: OpCon Focus button + in-page last activity panel styling.
- v8.118.54: OpCon thread Notes textarea grows with content (up to ~48vh).
- v8.118.53: Identity i panel white card, viewport-centered auto-size, single lookup button styling.
- v8.118.52: Identity i panel structured layout, Google icon per name row, phone lookup section styling.
- v8.118.51: Expanded card only for addresses/emails/phones; message + dial icon buttons on phone rows.
- v8.118.50: OpCon address/email is one muted line (matches people-row meta), not label columns.
- v8.118.49: OpCon always shows Google address + email on people rows and thread header.
- v8.118.48: Expanded people rows: consistent meta row gap/line-height (dense, not squished).
- v8.118.47: Unified 11px/500 meta on people rows; person-time no longer overlaps trailing chips.
- v8.118.46: LAST IN/OUT lines: drop dir min-width and flex-grow mid (one-space inline flow).
- v8.118.45: person-endpoint-sep preserves one space between number/email and label; tighter last-use mid gap.
- v8.118.44: Contact labels after number/email (one space); LAST IN/OUT LINE always visible on expanded rows.
- v8.118.43: OpCon people list wider default sidebar; contact methods use full row width (grid); skip duplicate In/Out padding.
- v8.118.42: OpCon sidebar width writes --op-sidebar-w on body (matches stylesheet scope); wider resize strip.
- v8.118.41: OpCon sidebar resize handle sits between list and thread (not clipped by overflow).
- v8.118.40: Campaign bulk Pin / Up / Down controls; campaign strip visible when a campaign is picked.
- v8.118.39: OpCon Source in top bar; Hide x on search row; Filters row retired; dating list respects hidden.
- v8.118.38: OpCon top bar Lane + Category + Mark pickers; tighter context select widths.
- v8.118.37: OpCon campaign picker row and bulk Add/Remove campaign buttons.
- v8.118.36: OpCon people list column is drag-resizable; width persists in this browser.
- v8.118.35: OpCon people-row LAST IN/OUT LINE labels fit without clipping.
- v8.118.34: People-row IN/OUT: is-lead line is bold (most recent); older line muted; unread header time heavier.
- v8.118.33: Drop unused OpCon outbound SMS Reuse link styling.
- v8.118.32: OpCon lane bar Dating list link (List chip beside lane select).
- v8.118.32: Phone OpCon thread shows Save to Google in the header row.
- v8.118.31: Sitewide phone zoom: html/body allow left/right pan (overflow-x auto + pan-x); OpCon keeps vertical lock.
- v8.118.30: Mark=f sliver also on data-gender=lf (legacy f kept).
- v8.118.28: People-row avatars use one neutral style (no dating vs business lane colors).
- v8.118.27: OpCon Mark=f sliver; lane tooltips on avatar circles; full last-used phone numbers.
- v8.118.25: OpCon phone thread text mode: redact off, bigger bubbles, hide mark strip, taller Send.
- v8.118.24: Case document can scroll. Operator chrome no longer clips the log.
- v8.118.23: Case page is one compact document with a Copy case control.
- v8.118.22: Operator case page (/subaru) uses shared control tokens.
- v8.118.21: Phone thread hides the composer drag bar. Send stays the 24px chip height.
- v8.118.20: Phone Saved tray stays short so the draft stays on screen.
- v8.118.19: Phone thread keeps the Saved paperclip after the site header hides.
- v8.118.18: Phone people-row i is a quiet mark, not a filled blue chip.
- v8.118.17: Composer saved items stay one row on the phone thread.
- v8.118.16: One control size and navy for OpCon chips, search, lane, Filters, and bulk actions.
- v8.118.15: Google status menu and people-row call-back icon. Dialer and extra Clips chips are gone.
- v8.118.14: Google, Dialer, and Clips use the same quiet chip. Reconnect no longer looks like a warning.
- v8.118.13: Operator menus scroll inside the viewport so the last items stay reachable.
- v8.118.12: Operator chat bubble text is smaller than the people-list names.
- v8.118.11: People-row In/Out sits 4px under the name.
- v8.118.10: Collapsed In/Out lines use the width under the checkbox and menu. Vertical spacing stays.
- v8.118.9: People-row In/Out sits 2px under the name.
- v8.118.8: In/Out sit tight under the name; SMS and time follow the label instead of the far right.
- v8.118.7: Collapsed people rows sit In/Out tight under the name (no extra grid gap).
- v8.118.6: People-row In and Out marks use the same font and color.
- v8.118.5: Collapsed In/Out lines use the space under the checkbox and row menu, so labels are not cut off early.
- v8.118.4: People-row In/Out keeps the number full width; the Google label sits after it and can ellipsis.
- v8.118.3: People-row Out number that is your line is not a contact tap target.
- v8.118.2: Hard-refresh cover matches OpCon and sits in the content pane only, so Home cannot flash through the header.
- v8.118.1: Identity i lives in a clip layer and stays hidden until it is placed. No offscreen hop.
- v8.118.0: Identity i is the navy card only. No full-page cover behind it.
- v8.117.0: Identity i uses an opaque cover while the card opens, so list and thread cannot flash through.
- v8.116.0: Identity i popout is opaque and placed before it shows, so pages behind it cannot flash through.
- v8.115.0: Identity i popout stays a fixed overlay so it never takes room in the thread.
- v8.114.0: People-row identity i stays visible; last In/Out times and SMS/Call/Mail marks stay on the collapsed row.
- v8.113.0: OpCon Lane is a compact selection box (last pick, or All conversations).
- v8.112.0: OpCon lane chips; last IN/OUT times on people rows; opaque shell so Home cannot show through.
- v8.111.0: Lane menu overlay blocks the people list/search so All conversations taps cannot fall through.
- v8.110.0: OpCon New message Open bar on a wake.
- v8.109.0: OpCon Details name rows: First / Middle / Last / Handle plus From source.
- v8.108.0: OpCon thread identity i and wrapping Seen/Prospect meta; taller phone-alert card on phones.
- v8.107.0: OpCon Lane menu is a fixed overlay on phones so Dating is tappable (was under the search field).
- v8.106.0: People-row last-used SMS/Call/Mail chip sits after the number.
- v8.105.0: People-row last-used channel chip shows a distinct SMS, Call, or Mail icon plus caption.
- v8.104.0: People-row last-used lines fit a channel icon and Google-style number label.
- v8.103.0: OpCon controls share one compact size (24px) so Send, tabs, and filters match.
- v8.102.1: People-row In/Out labels sit in front of each last-used number.
- v8.102.0: People-row last-used numbers sit beside In/Out marks; timestamps stay in hover.
- v8.101.0: People-row last-used call lines; date+time stamp can wrap.
- v8.100.1: .sots-content horizontal padding uses --sots-page-gutter (shared with header brand).
- v8.100.0: Mobile Clips tray denser paste chips; pin mark; sits tight above the message box.
- v8.99.0: Mobile composer Clips toggle + tray denser; Ban/Drafts strip removed from below messages.
- v8.98.0: Mobile OpCon thread denser: tighter bubbles/gaps; hide OUTGOING SMS meta + name provenance; quieter composer tools.
- v8.97.0: People-list phone under name is number-width only (not full-row hit target).
- v8.96.0: People-list identity info icon; inline name edit field styles.
- v8.95.0: People-list notice when a dial is saved to (or fails to update) the SMS list.
- v8.94.0: Brief highlight when a just-dialed contact is confirmed on the SMS people list.
- v8.93.0: OpCon people rows show clickable default phone under name; drop name underline.
- v8.92.0: OpCon people-list Dialer chip next to Google sync status.
- v8.91.0: OpCon mobile people-list checkbox / ▾ larger tap targets (density kept).
- v8.90.0: OpCon mobile thread denser (hide site topbar in thread; compact mark/actions/composer; Send inline).
- v8.89.0: OpCon people-list bulk Dating button (keeps selection; pairs with More… Dating category actions).
- v8.88.0: OpCon mobile outreach denser: compact lane control; Mark filter; bulk m/f/c/u + SMS strip on people list.
- v8.87.2: OpCon restore no longer blanks the people list; boot cover drops when list paints.
- v8.87.1: OpCon boot cover is opaque full-viewport (covers prior page during stream).
- v8.87.0: OpCon boot hides empty thread flash; Google sync status chip; people-row ▾ matches checkbox (16px).
- v8.86.0: Compact default buttons/fields site-wide; OpCon Contact notes Save is a tiny inset control inside the editor.
- v8.85.5: OpCon people-list identity card hover/tap panel with Copy inside (replaces native title tooltip + row Copy chip).
- v8.85.4: OpCon actions are a plain Message/Call/Email + From strip (no repeating section title); Ban-only composer tools; quieter Mark control.
- v8.85.3: OpCon composer drag-handle; keep Message/Call/Email visible while drafting.
- v8.85.2: OpCon Contact notes Save is full-width under the editor (mobile-friendly).
- v8.85.1: Hard-refresh restore also hides people list until boot paints (with early head inject).
- v8.85.0: Hard-refresh hides the whole SMS thread shell; inbound SMS alert meta + name provenance chip styles.
- v8.84.0: OpCon people-row select checkbox always visible; Source filter note styling.
- v8.83.0: Hard-refresh restore hides the whole thread pane until the open person paints.
- v8.82.0: Compact icon Copy controls; quieter thread sections; hide empty thread during restore.
- v8.81.0: OpCon collapsible thread sections; conversation copy toolbar; selectable message text.
- v8.80.0: OpCon sidebar lane context bar (You are in SMS/Contacts + Change menu).
- v8.78.0: OpCon Message/Call/Email chooser chrome; combined people-row Actions control.
- v8.77.0: OpCon self-contact ways panel (labeled numbers + email reach).
- v8.76.0: OpCon Send-from panel, reach actions, thread photo thumb.
- v8.75.0: From number stays visible on Reply as (not only while editing).
- v8.74.0: People-row checkbox + Actions ▾ side by side; Mark m/f/c; Details contact photo block.
- v8.73.0: OpCon editable Notes textarea + Save; floating people-row Actions menu styles.
- v8.72.0: OpCon thread Notes strip; people-row Actions ▾ replaces the checkbox control.
- v8.71.0: Phone OpCon people home: quieter bulk bar, no forced nowrap overflow; thread chrome stays full-bleed.
- v8.70.0: Contact-only SMS search rows (address book, no thread yet) use a quiet Contact cue.
- v8.69.0: OpCon Category/Gender on one horizontal strip; gender m/f/? stay in a row; bulk Actions row does not wrap Clear alone; people-time fits date+time.
- v8.68.0: OpCon SMS bulk bar stays mounted (muted when empty) so checkbox select cannot jump the people list.
- v8.67.0: OpCon SMS bulk Actions… overlays the people list (no layout jump); selected vs open row styles.
- v8.66.0: OpCon people list gender mark (m/f) and thread gender toggle styles.
- v8.65.0: SMS people names use regular weight (no bold), same size.
- v8.64.0: OpCon SMS people rows are one line by default (name + time).
- v8.63.0: Owner phone labels are aligned, understated rename controls.
- v8.62.0: Quieter bulk toolbar; Sources chips retired (Sources ▾ lives with Categories in list filters).
- v8.61.1: Category field [hidden] wins over display:grid so Sub-category stays collapsed until needed.
- v8.61.0: Thread Category + Sub-category assign bar styles.
- v8.60.0: Sources filter chips replace Categories on Contacts.
- v8.59.0: Operator Contacts sidebar polish — pill category chips, two-row bulk bar, quieter controls.
- v8.58.0: Operator Categories filter chips (All lane) + category on people rows; Google labels demoted.
- v8.56.0: Email/voice cards stay inside the thread column (no width:100% spill); desktop clips main pane paint.
- v8.55.0: Operator desktop shell uses CSS grid columns + stretch (no height:100% sidebar) so the thread cannot wrap under the people list.
- v8.54.0: Desktop empty thread pane consistent from 641px up (hide identity/composer chrome when no conversation).
- v8.53.0: Contacts-first Operator filters (All/SMS/Mail/Google/Dating); Other menu retired.
- v8.52.0: Business channel segment control wins over page-local underlined crumbs; inbox is centralized Operator list.
- v8.51.0: Business channel segment control; Other menu is Dating/Personal picks only (no nested sms/mail crumbs).
- v8.50.0: Quieter Operator list actions; hides composer when no thread; calmer empty desktop pane.
- v8.49.0: Smaller channel sublinks stacked under Business; denser Other menu spacing.
- v8.48.0: Operator Business channels sit on one line with the title; Other dropdown has group blurb + per-item channel links.
- v8.47.0: Early flex column widths for Operator shell; removes phone-drawer slide transition that flashed the people list.
- v8.46.0: Operator shell uses flex row (not grid) for a stable people-list column; Business sublinks stack under Business.
- v8.45.0: Phone list/thread drawer only ≤640px; desktop people list stays white and in-flow beside the thread.
- v8.44.0: Business channels sit on one line with the section title; people list column widened to 420px.
- v8.43.0: Operator two-pane layout stays until 768px (fixes chat overlaying people list when desktop is zoomed); smaller tighter Business sublinks; Other as bordered dropdown chip.
- v8.42.0: Operator nav = Business/Other sections with underlined subtext links; Other chevron dropdown; kills short-thread white spacer slab; hard-hides inactive workspace layouts.
- v8.41.0: Removes centered 680px thread strip that looked like a collapsed pane on wide screens; 360px people list; bubbles stay capped without starving the main pane.
- v8.40.0: Operator sms/mail/combined pill segment; short-thread bottom anchor inside reading column; tighter bubbles; clearer Call/Email/Note controls.
- v8.39.0: Reading-column tokens aligned with Operator critical inline styles; quieter inbound badges.
- v8.38.0: Constrains Operator thread/composer to a centered reading column so inbound and outbound bubbles stop pin to opposite edges of ultrawide panes.
- v8.37.0: Calmer empty thread canvas when no conversation is selected (refresh landing).
- v8.36.0: Removes bottom-spacer message anchoring that left a huge empty gap in short threads; messages read top-down and still scroll to latest.
- v8.35.0: People-row name source + Rename/Details actions; quieter intel cues.
- v8.34.0: Mobile thread drawer only applies with is-operator-mobile so desktop keeps the people list visible beside the thread.
- v8.33.0: People list shows phone/email endpoints under each name.
- v8.32.0: Clearer Operator message bubbles (white inbound / stronger outbound) so thread text no longer blends into the canvas.
- v8.31.0: Business-first Operator nav with sms/mail/combined sublinks and Other dropdown (Dating/Personal).
- v8.30.0: Quieter Operator thread chrome and calmer people-list waiting cues; denser message canvas.
- v8.29.0: Desktop Operator lane switcher is compact and left-aligned; full-width stretch stays phone-only.
- v8.28.0: Restores a calm desktop Operator composer (compact Send beside the field), bottom-anchors the thread, and keeps full-width stacked Send only below 1024px.
- v8.27.0: Operator composer stacks Send full-width and sizes shell to visualViewport so Android Chrome no longer clips the reply bar.
- v8.26.0: Fixes Operator mobile Send button half-clipped — composer uses minmax grid, kills button max-width:100% / 160px min-width in the row, safe-area padding.
- v8.25.0: Hide list-mode thread pane with [hidden]/ clearer delivery ticks; collapse Call/Email/Note while typing so Send isn't crowded by the keyboard.
- v8.24.0: Fixes hidden Mail layout leaking into SMS views; scopes list-first rules to #smsOperatorLayout; denser person rows for 5–10 visible conversations.
- v8.23.0: Dense people-list hero — full-width list-first below 1024px, compact rows, full names, quieter meta; hide empty composer when no thread.
- v8.22.0: People-first Operator — mobile inbox/thread modes, rich person rows with avatar/preview/waiting, Inbox lane chrome.
- v8.21.0: Conversation-first Operator chrome — quiet identity chip, lane-only view bar, composer overflow actions, denser person header.
- v8.20.0: Commercial Operator polish — light-shell menu controls, quiet notification toggle, refined voice/email timeline cards, softer conversation canvas aligned with Discovery sheet tokens.
- v8.19.0: Restyles Operator identity as calm conversation personality chrome; Dating uses plum accent, amber reserved for conflicts.
- v8.18.0: Makes Operator outbound Identity banner color-coded and conflict-visible so the active send identity is unmistakable.
- v8.17.0: Quiets Operator identity chrome to a habit summary that expands only when changing outbound identity.
- v8.16.0: Styles Operator outbound Identity bar and channel gating.
- v8.15.0: Adds shared Operator view bar styles and denser sidebar chrome so Business/Dating/Mail feel like app views.
- v8.14.0: Aligns Operator chrome to Discovery Grid sheet tokens (flat surfaces, 6px controls, navy primary, dense titlebar) so Operator and Discovery feel like one SaaS product.
- v8.13.0: Operator SaaS polish — unified conversation shell (no dual card frames), quieter borders/shadows, refined type/spacing, and shared lane chrome so Business/Dating/Mail read as one product.
- v8.12.2: Operator P0 — tighter content padding so the conversation workspace owns the first viewport (diagnostics no longer sit above it).
- v8.12.1: Adds operator workspace host flex containment so Devices & visitors cannot collapse the conversation/mail panes under overflow:hidden.
- v8.12.0: Finalizes operator console chat-app containment with fixed desktop two-pane layout, mobile hamburger sidebar drawer, full-height conversation pane, pinned composer, tighter relationship cards, compact bubbles, and no page-level or horizontal scrolling.
- v8.11.0: Refines the operator console into a fixed-height chat layout with a collapsed relationship details drawer, tighter header/composer spacing, and mobile containment that keeps page-level scrolling disabled.
- v8.10.0: Locks the operator console into a modern chat-app viewport so the composer remains visible while only the relationship list and message history scroll.
- v8.9.0: Adds sticky relationship communication actions, endpoint link styling, and phone-friendly operator action layout while preserving the existing SOTS shell.
- v8.8.0: Removes header-specific CSS so /apps/assets/header.css is the sole owner of SOTS brand header styling.
- Added compact public workspace send-button sizing for learning journey workspace
- Preserved shared operator/public workspace shell behavior
- Workspace refinement: supports hidden public subnav, lighter workspace typography, masked identifiers, and tighter conversation-first layout
- Density Pass: reduced shell/header/subnav height, widened workspaces, increased usable message space, and widened Workspace Access panel
- Rebuilt stylesheet against confirmed live DOM selectors
- Restored professional dark framed SOTS application identity
- Restored stable operator layout using .operator-layout, .operator-main, .messages, and .composer
- Restored stable public workspace layout using .sots-workspace-app, .sots-communication-panel, .sots-message-area, and .sots-message-compose
- Removed failed phantom-selector visual migration assumptions
- Preserved compact relationship card styling
- Preserved shared renderer compatibility classes
- Improved message panel containment, composer hierarchy, and visual contrast
- Reduced public workspace vertical footprint
- Reduced workspace header visual weight
- Standardized application typography to match homepage branding
*/

:root {
    --sots-primary: #204c82;
    --sots-primary-dark: #163a66;
    --sots-primary-soft: #eef4ff;
    --sots-bg: #e8edf3;
    --sots-surface: #ffffff;
    --sots-surface-soft: #f7f9fc;
    --sots-text: #18212f;
    --sots-muted: #5b6b7c;
    --sots-border: #d9e2ec;
    --sots-border-soft: #e7edf3;
    --sots-shadow: 0 12px 34px rgba(15, 23, 42, 0.08);
    --sots-shadow-soft: 0 6px 18px rgba(15, 23, 42, 0.06);
    --sots-radius: 18px;
    --sots-radius-sm: 12px;
    --sots-control-h: 24px;
    --sots-control-font: 12px;
    --sots-control-pad-x: 8px;
    --sots-control-pad-y: 3px;
    --sots-control-radius: 6px;
    --sots-control-border: var(--sots-border);
    --sots-field-font: 12px;
    --sots-textarea-min-h: 48px;
}

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
    min-height: 100%;
    /* Pinch-zoom must allow left/right pan; do not lock to pan-y or overflow-x:hidden here. */
    overflow-x: auto;
    touch-action: pan-x pan-y pinch-zoom;
}

body {
    background: var(--sots-bg);
    color: var(--sots-text);
    font-family: Arial, sans-serif;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

/* Compact professional defaults for controls (pages may override). */
button {
    font-size: var(--sots-control-font);
    line-height: 1.2;
    padding: var(--sots-control-pad-y) var(--sots-control-pad-x);
    border-radius: var(--sots-control-radius);
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="hidden"]):not([type="image"]):not([type="color"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
select {
    font-size: var(--sots-field-font);
    line-height: 1.25;
    min-height: var(--sots-control-h);
    padding: var(--sots-control-pad-y) var(--sots-control-pad-x);
    border-radius: var(--sots-control-radius);
}

input[type="submit"],
input[type="button"],
input[type="reset"] {
    font-size: var(--sots-control-font);
    line-height: 1.2;
    min-height: var(--sots-control-h);
    padding: var(--sots-control-pad-y) var(--sots-control-pad-x);
    border-radius: var(--sots-control-radius);
}

textarea {
    font-size: var(--sots-field-font);
    line-height: 1.35;
    min-height: var(--sots-textarea-min-h);
    padding: 6px 8px;
    border-radius: var(--sots-control-radius);
}

/* =========================================================
   GLOBAL SHELL
========================================================= */

.sots-shell {
    width: 100%;
    min-height: 100vh;
}

.sots-subnav {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 18px;
    background: #ffffff;
    border-bottom: 1px solid var(--sots-border);
}

.sots-content {
    width: 100%;
    padding: 10px var(--sots-page-gutter, 28px);
}

.sots-public-workspace .sots-content {
    padding-top: 10px;
}

.sots-public-workspace .sots-subnav {
    display: none;
}

.sots-card {
    background: #ffffff;
    border: 1px solid var(--sots-border);
    border-radius: 14px;
    box-shadow: var(--sots-shadow);
}

/* =========================================================
   NAV
========================================================= */

.sots-nav {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 18px;
    background: #15375f;
}

.sots-nav-item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 0 13px;
    border-radius: 999px;
    color: rgba(255, 255, 255, .9);
    font-size: 13px;
    font-weight: 700;
}

.sots-nav-item.active {
    background: #ffffff;
    color: #163a66;
}

/* =========================================================
   OPERATOR LAYOUT
========================================================= */

.sots-operator-content {
    padding: 10px 14px;
}

.operator-layout {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 8px;
    align-items: stretch;
    min-height: calc(100vh - 128px);
}

.operator-sidebar {
    background: #ffffff;
    border: 1px solid var(--sots-border);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: var(--sots-shadow);
    display: flex;
    flex-direction: column;
}

.operator-main {
    background: #ffffff;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-radius);
    overflow: hidden;
    box-shadow: var(--sots-shadow);
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 128px);
}

body.sots-operator-page {
    display: flex;
    flex-direction: column;
    height: var(--sots-vvh, 100dvh);
    max-height: var(--sots-vvh, 100dvh);
    overflow-x: auto;
    overflow-y: hidden;
    touch-action: pan-x pan-y pinch-zoom;
    background: var(--sots-bg);
    --op-sidebar-w: 480px;
    --op-border: var(--sots-border);
    --op-border-soft: var(--sots-border-soft);
    --op-soft: var(--sots-surface-soft);
    --op-ink: var(--sots-text);
    --op-muted: var(--sots-muted);
    --op-accent: var(--sots-primary);
    --op-control-h: var(--sots-control-h);
    --op-radius: var(--sots-control-radius);
    --sots-chrome-gap: 0px;
}

body.sots-operator-page > .sots-topbar {
    flex: 0 0 auto;
    width: 100%;
}

body.sots-operator-page .sots-shell {
    flex: 1 1 auto;
    min-height: 0;
    height: auto;
    max-height: none;
    display: flex;
    flex-direction: column;
}

body.sots-operator-page .sots-content.sots-operator-content {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding: 0;
    gap: 0;
    background: #f6f9fd;
}

body.sots-operator-page .operator-workspace-host {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #ffffff;
    isolation: isolate;
    border-top: 1px solid var(--op-border-soft);
}

body.sots-operator-page .operator-workspace-host > .operator-layout {
    flex: 1 1 auto;
    min-height: 0;
    align-self: stretch;
    height: auto;
}

body.sots-operator-page .operator-wake-jump {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 10px;
    border-bottom: 1px solid var(--op-border, #d5dee8);
    background: #102a43;
    color: #f5f8fb;
    z-index: 60;
}

body.sots-operator-page .operator-wake-jump[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-wake-jump-copy {
    font-size: 14px;
    font-weight: 650;
}

body.sots-operator-page .operator-wake-jump-open {
    appearance: none;
    min-height: 36px;
    padding: 0 14px;
    border: 0;
    border-radius: 6px;
    background: #ffffff;
    color: #102a43;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}

body.sots-operator-page .operator-view-bar {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 8px;
    flex: 0 0 auto;
    padding: 10px 14px 8px;
    background: #ffffff;
    border-bottom: 1px solid var(--op-border-soft);
}

body.sots-operator-page .operator-view-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 8px 28px;
    min-width: 0;
    flex: 1 1 auto;
}

body.sots-operator-page .operator-view-section {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    min-width: 0;
}

body.sots-operator-page .operator-view-section.is-business-stack {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0;
}

body.sots-operator-page .operator-view-section.is-business-stack > .operator-lane-button {
    margin: 0;
    padding: 0;
    line-height: 1.1;
}

body.sots-operator-page .operator-channel-sublinks {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 2px;
    margin: 6px 0 0;
    padding: 3px;
    border-radius: 999px;
    background: #eef2f7;
    line-height: 1;
}

body.sots-operator-page .operator-channel-sublinks[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-channel-sublinks .operator-sublink {
    appearance: none;
    border: 0;
    background: transparent;
    color: #4a5d73;
    border-radius: 999px;
    padding: 5px 10px;
    font-size: 12px;
    font-weight: 650;
    line-height: 1;
    text-decoration: none;
    text-underline-offset: unset;
    cursor: pointer;
}

body.sots-operator-page .operator-channel-sublinks .operator-sublink:hover {
    background: rgba(255, 255, 255, 0.75);
    color: #102a43;
}

body.sots-operator-page .operator-channel-sublinks .operator-sublink.is-active {
    background: #ffffff;
    color: #102a43;
    box-shadow: 0 1px 2px rgba(16, 42, 67, 0.12);
    font-weight: 750;
}

body.sots-operator-page .operator-channel-sublinks .operator-sublink-sep {
    display: none;
}

body.sots-operator-page .operator-view-section#operatorOtherSection {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0;
    padding-top: 2px;
}

body.sots-operator-page .operator-other-panel-blurb {
    margin: 0 0 6px;
    padding: 4px 10px 8px;
    border-bottom: 1px solid var(--op-border-soft, rgba(16, 42, 67, 0.08));
    color: #6b7c90;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
}

body.sots-operator-page .operator-other-item-head {
    display: none;
}

body.sots-operator-page .operator-other-channels {
    display: none !important;
}

body.sots-operator-page .operator-view-primary {
    display: none;
}

body.sots-operator-page .operator-other-wrap {
    position: relative;
}

body.sots-operator-page .operator-other-panel {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 40;
    min-width: 248px;
    padding: 8px;
    border: 1px solid var(--op-border-soft);
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(15, 35, 60, 0.14);
}

body.sots-operator-page .operator-other-panel[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-other-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    width: 100%;
    margin: 0;
    padding: 10px 12px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--op-ink, #123f67);
    text-align: left;
    cursor: pointer;
}

body.sots-operator-page .operator-other-item:hover,
body.sots-operator-page .operator-other-item.is-active {
    background: #eef5ff;
}

body.sots-operator-page .operator-other-item-title {
    font-size: 14px;
    font-weight: 750;
    line-height: 1.2;
    color: #102a43;
}

body.sots-operator-page .operator-other-item-desc {
    font-size: 12px;
    font-weight: 500;
    color: #6b7c90;
    line-height: 1.3;
}

body.sots-operator-page .operator-view-sublinks {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 2px;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

body.sots-operator-page .operator-sublink-sep {
    color: #9aa8b8;
    font-size: 10px;
    line-height: 1;
    user-select: none;
}

body.sots-operator-page .operator-view-sublinks[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-sublink {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #6b7c90;
    font-size: 11px;
    font-weight: 550;
    letter-spacing: 0;
    text-transform: none;
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
    cursor: pointer;
    line-height: 1.2;
    box-shadow: none;
}

body.sots-operator-page .operator-sublink:hover {
    color: var(--op-ink, #123f67);
    background: transparent;
}

body.sots-operator-page .operator-sublink.is-active {
    color: #0b5cab;
    font-weight: 700;
    text-decoration-thickness: 2px;
    background: transparent;
    box-shadow: none;
}

/* Channel segment wins over legacy underlined sublink styles. */
body.sots-operator-page .operator-channel-sublinks .operator-sublink {
    padding: 5px 10px;
    border-radius: 999px;
    color: #4a5d73;
    font-size: 12px;
    font-weight: 650;
    text-decoration: none;
    text-underline-offset: unset;
    text-decoration-thickness: unset;
}

body.sots-operator-page .operator-channel-sublinks .operator-sublink:hover {
    background: rgba(255, 255, 255, 0.75);
    color: #102a43;
}

body.sots-operator-page .operator-channel-sublinks .operator-sublink.is-active {
    background: #ffffff;
    color: #102a43;
    box-shadow: 0 1px 2px rgba(16, 42, 67, 0.12);
    font-weight: 750;
    text-decoration: none;
}

body.sots-operator-page .operator-view-other-mark {
    display: none !important;
}

body.sots-operator-page .operator-view-bar .operator-lane-button {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #5f7488;
    font-size: 14px;
    font-weight: 750;
    letter-spacing: -0.01em;
    cursor: pointer;
    line-height: 1.2;
    box-shadow: none;
}

body.sots-operator-page .operator-view-bar .operator-lane-button.is-active {
    color: #0b3d6e;
    background: transparent;
    box-shadow: none;
}

body.sots-operator-page .operator-view-bar .operator-other-button {
    padding: 3px 8px 3px 10px;
    border: 1px solid rgba(16, 42, 67, 0.14);
    border-radius: 8px;
    background: #f6f9fd;
    gap: 6px;
}

body.sots-operator-page .operator-view-bar .operator-other-button.is-active {
    border-color: rgba(11, 61, 110, 0.28);
    background: #eef5ff;
    color: #0b3d6e;
}

body.sots-operator-page .operator-other-button .operator-other-chevron {
    display: inline-block;
    font-size: 12px;
    line-height: 1;
    opacity: 0.85;
    transform: translateY(1px);
}

body.sots-operator-page .operator-other-button[aria-expanded="true"] .operator-other-chevron {
    transform: translateY(1px) rotate(180deg);
}

body.sots-operator-page .operator-view-bar .operator-lane-toggle {
    display: none;
}

body.sots-operator-page .operator-view-bar-actions {
    display: none;
}

body.sots-operator-page .operator-view-bar .alert-button,
body.sots-operator-page .operator-view-bar .alert-status {
    display: none !important;
}

body.sots-operator-page .operator-view-bar .operator-new-dating-button {
    display: none !important;
}

body.sots-operator-page .conversation-header {
    gap: 4px;
    padding: 8px 14px 6px;
}

body.sots-operator-page .operator-identity-shell {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
    padding: 0 0 2px;
    border: 0;
    background: transparent;
}

body.sots-operator-page .operator-identity-shell.identity-dating {
    --id-ink: #4f3d73;
    --id-soft: #f4f0fa;
    --id-line: #d4c8e8;
    --id-mark: #6a5490;
}

body.sots-operator-page .operator-identity-shell.identity-business {
    --id-ink: #123a63;
    --id-soft: #eef3f9;
    --id-line: #c5d2e3;
    --id-mark: #1f446d;
}

body.sots-operator-page .operator-identity-shell.identity-device {
    --id-ink: #1b5c4a;
    --id-soft: #eef7f3;
    --id-line: #b9d8cb;
    --id-mark: #2a7a62;
}

body.sots-operator-page .operator-identity-shell.is-conflict {
    --id-ink: #7a4a00;
    --id-soft: #fff6e8;
    --id-line: #e0b35c;
    --id-mark: #c47d0e;
}

body.sots-operator-page .operator-identity-summary {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 7px;
    width: auto;
    max-width: 100%;
    min-height: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--id-ink, #243b53);
    padding: 0;
    cursor: pointer;
    text-align: left;
}

body.sots-operator-page .operator-identity-mark {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 999px;
    background: var(--id-mark, #1f446d);
    color: #ffffff;
    font-size: 10px;
    font-weight: 800;
}

body.sots-operator-page .operator-identity-summary-copy {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 0;
    flex: 0 1 auto;
}

body.sots-operator-page .operator-identity-summary-kicker {
    font-size: 10px;
    font-weight: 650;
    letter-spacing: 0;
    text-transform: none;
    color: var(--id-ink, #5f6b7a);
    opacity: 0.85;
}

body.sots-operator-page .operator-identity-summary-kicker[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-identity-summary-text {
    font-size: 12px;
    font-weight: 650;
    letter-spacing: -0.01em;
    line-height: 1.25;
    color: var(--id-ink, #40566d);
}

body.sots-operator-page .operator-identity-summary-note {
    margin-top: 2px;
    font-size: 11px;
    font-weight: 600;
    color: var(--id-ink, #5f6b7a);
}

body.sots-operator-page .operator-identity-summary-hint {
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 600;
    color: var(--id-ink, #5f6b7a);
    letter-spacing: 0;
    text-transform: none;
    opacity: 0.55;
}

body.sots-operator-page .operator-identity-shell.is-editing .operator-identity-summary,
body.sots-operator-page .operator-identity-shell.is-conflict .operator-identity-summary,
body.sots-operator-page .operator-identity-shell.is-override .operator-identity-summary {
    width: 100%;
    min-height: 34px;
    border: 1px solid var(--id-line, var(--op-border, #d8e1ec));
    border-radius: 10px;
    background: var(--id-soft, #f8fafc);
    padding: 6px 10px;
}

body.sots-operator-page .operator-identity-shell.is-editing .operator-identity-summary-text,
body.sots-operator-page .operator-identity-shell.is-conflict .operator-identity-summary-text,
body.sots-operator-page .operator-identity-shell.is-override .operator-identity-summary-text {
    font-size: 13px;
    font-weight: 750;
    color: var(--id-ink, #071b35);
}

body.sots-operator-page .operator-identity-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

body.sots-operator-page .operator-identity-label {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #8a97a8;
}

body.sots-operator-page .operator-identity-toggle {
    display: inline-flex;
    flex: 1 1 auto;
    gap: 0;
    padding: 2px;
    border-radius: var(--op-radius, 6px);
    background: #e8edf5;
}

body.sots-operator-page .operator-identity-button {
    flex: 1 1 auto;
    min-height: 26px;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: #4a5d73;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    padding: 0 8px;
}

body.sots-operator-page .operator-identity-button.is-active {
    background: #ffffff;
    color: var(--op-ink, #071b35);
    box-shadow: 0 1px 1px rgba(15, 35, 60, 0.06);
}

body.sots-operator-page .operator-channel-button.is-active {
    background: var(--op-accent, #1f446d) !important;
    border-color: var(--op-accent, #1f446d) !important;
    color: #ffffff !important;
}

body.sots-operator-page .operator-quick-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

body.sots-operator-page .operator-sidebar > .search-wrap {
    padding: 8px 10px;
    border-bottom: 1px solid var(--op-border-soft, #e8edf5);
    margin: 0;
    background: transparent;
}

body.sots-operator-page .operator-layout {
    flex: 1 1 auto;
    min-height: 0;
    height: auto;
    overflow: hidden;
    gap: 0;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    background: #ffffff;
}

/* Permanent desktop column widths in the early stylesheet — avoids FOUC blip. */
@media (min-width: 641px) {
    body.sots-operator-page .operator-workspace-host > .operator-layout:not([hidden]) {
        height: 100%;
        max-height: 100%;
    }
    body.sots-operator-page #smsOperatorLayout:not([hidden]) {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
    }
    body.sots-operator-page #smsOperatorLayout > .operator-sidebar {
        flex: 0 0 var(--op-sidebar-w, 480px) !important;
        width: var(--op-sidebar-w, 480px) !important;
        min-width: var(--op-sidebar-w, 480px) !important;
        max-width: var(--op-sidebar-w, 480px) !important;
        align-self: stretch !important;
        height: auto !important;
        min-height: 0 !important;
        position: relative !important;
        transform: none !important;
        display: flex !important;
        flex-direction: column !important;
        overflow: hidden !important;
        z-index: 20 !important;
        background: #ffffff !important;
    }
    body.sots-operator-page #smsOperatorLayout > .operator-main {
        flex: 1 1 0 !important;
        width: 0 !important;
        min-width: 0 !important;
        align-self: stretch !important;
        height: auto !important;
        min-height: 0 !important;
        position: relative !important;
        overflow: hidden !important;
        display: flex !important;
        flex-direction: column !important;
        z-index: 1 !important;
    }
    body.sots-operator-page #smsOperatorLayout > .operator-main .operator-thread-pane {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        min-width: 0 !important;
        overflow: hidden !important;
        display: flex !important;
        flex-direction: column !important;
    }
}

/* One product shell: sidebar + main share a single surface. */
body.sots-operator-page .operator-sidebar,
body.sots-operator-page .operator-main {
    min-height: 0;
    height: auto;
    align-self: stretch;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

body.sots-operator-page .operator-sidebar {
    background: #ffffff;
    border-right: 1px solid var(--op-border) !important;
}

body.sots-operator-page .operator-sidebar-resize-handle {
    position: relative;
    flex: 0 0 12px;
    width: 12px;
    min-width: 12px;
    max-width: 12px;
    height: auto;
    min-height: 100%;
    align-self: stretch;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: col-resize;
    z-index: 40;
    touch-action: none;
    pointer-events: auto;
}

body.sots-operator-page .operator-sidebar-resize-handle[hidden] {
    display: none !important;
}

body.sots-operator-page #smsOperatorLayout > .operator-sidebar-resize-handle {
    flex: 0 0 12px !important;
    width: 12px !important;
    min-width: 12px !important;
    max-width: 12px !important;
    align-self: stretch !important;
    min-height: 100% !important;
    pointer-events: auto !important;
}

body.sots-operator-page .operator-sidebar-resize-handle::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 5px;
    width: 2px;
    border-radius: 1px;
    background: rgba(16, 42, 67, 0.08);
    transition: background 0.12s ease;
}

body.sots-operator-page .operator-sidebar-resize-handle:hover::after,
body.sots-operator-page .operator-sidebar-resize-handle:focus-visible::after,
body.sots-operator-page .operator-sidebar.is-resizing .operator-sidebar-resize-handle::after {
    background: rgba(31, 68, 109, 0.35);
}

body.sots-operator-page .operator-sidebar.is-resizing,
body.sots-operator-page .operator-sidebar-resize-handle.is-resizing {
    user-select: none;
}

body.sots-operator-page .operator-main {
    background: #ffffff;
    min-height: 0;
}

body.sots-operator-page .operator-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    background: #ffffff;
}

body.sots-operator-page .operator-list-stack {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

body.sots-operator-page .operator-list-stack > .operator-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

body.sots-operator-page .conversation-header,
body.sots-operator-page .composer {
    flex: 0 0 auto;
    min-height: 0;
}

body.sots-operator-page .messages {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 16px 18px 18px;
    background: linear-gradient(180deg, #fbfdff 0%, #f4f7fb 100%);
}

.operator-panel-header {
    padding: 11px 14px;
    border-bottom: 1px solid var(--sots-border);
    background: #ffffff;
}

.operator-title {
    font-size: 18px;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.03em;
    margin-bottom: 6px;
}

.operator-subtitle {
    font-size: 12px;
    line-height: 1.4;
    color: var(--sots-muted);
}

.operator-alerts {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
}

.alert-button {
    border: none;
    border-radius: var(--sots-control-radius);
    background: #0f7a4f;
    color: #ffffff;
    padding: 0 10px;
    min-height: var(--sots-control-h);
    height: var(--sots-control-h);
    font-size: var(--sots-control-font);
    font-weight: 700;
    cursor: pointer;
}

.alert-button.enabled {
    background: #0f7a4f;
}

.alert-status {
    font-size: 12px;
    font-weight: 600;
    color: var(--sots-muted);
}

.search-wrap {
    padding: 12px 14px;
    border-bottom: 1px solid var(--sots-border);
}

.search-wrap input {
    width: 100%;
    height: var(--sots-control-h);
    min-height: var(--sots-control-h);
    border-radius: var(--sots-control-radius);
    border: 1px solid var(--sots-border);
    background: #ffffff;
    padding: 0 8px;
    font-size: var(--sots-field-font);
}

.operator-bulk-toolbar {
    background: #f4f7fb !important;
    border-bottom: 1px solid var(--sots-border) !important;
    padding: 10px 12px !important;
}

/* =========================================================
   RELATIONSHIP CARDS
========================================================= */

.operator-list {
    overflow-y: auto;
}

.ticket {
    padding: 10px 12px;
    border-bottom: 1px solid var(--sots-border-soft);
    background: #ffffff;
    cursor: pointer;
    transition:
        background .15s ease,
        border-color .15s ease;
}

.ticket:hover {
    background: #f8fbff;
}

.ticket.active {
    background: #eaf1fa;
    border-left: 3px solid var(--op-accent, #1f446d);
}

.ticket.unread {
    background: #f7fbff;
}

.ticket-top {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
}

.ticket-title {
    flex: 1;
    min-width: 0;
    font-size: 14px;
    font-weight: 800;
    color: #18212f;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ticket-meta {
    font-size: 11px;
    line-height: 1.35;
    color: var(--sots-muted);
    margin-bottom: 6px;
}

.ticket-actions {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.workspace-launch-button,
.workspace-copy-button {
    border: 1px solid #d7e1ec;
    background: #ffffff;
    color: #304255;
    border-radius: 8px;
    padding: 4px 8px;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    transition:
        background .15s ease,
        border-color .15s ease;
}

.workspace-launch-button:hover,
.workspace-copy-button:hover {
    background: var(--sots-primary-soft);
    border-color: #4f6df5;
}

.unread-badge {
    min-width: 18px;
    height: 18px;
    border-radius: 999px;
    background: #4f6df5;
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 800;
    padding: 0 5px;
}

.ticket-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: #204c82;
    color: #ffffff;
    font-size: 10px;
    font-weight: 800;
    padding: 4px 8px;
    margin-top: 6px;
}

/* =========================================================
   OPERATOR CONVERSATION HEADER
   Confirmed live DOM:
   .operator-main > .conversation-header
========================================================= */

.conversation-header {
    padding: 8px 12px;
    border-bottom: 1px solid var(--sots-border);
    background: #ffffff;
}

.conversation-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}

.conversation-title {
    font-size: 17px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: #163a66;
}

.conversation-meta {
    font-size: 12px;
    line-height: 1.45;
    color: var(--sots-muted);
}


.operator-quick-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    padding: 6px 0 4px;
    background: #ffffff;
}

.operator-action-link,
.relationship-chip-link {
    text-decoration: none;
}

.operator-action-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.relationship-detail-shell {
    margin-top: 6px;
    border: 1px solid var(--sots-border);
    border-radius: 10px;
    background: #f8fafc;
    overflow: hidden;
}

.relationship-detail-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 7px 10px;
    cursor: pointer;
    color: #123f67;
    font-size: 12px;
    font-weight: 900;
    list-style: none;
}

.relationship-detail-summary::-webkit-details-marker {
    display: none;
}

.relationship-detail-summary-hint {
    color: #687789;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.relationship-detail-shell[open] .relationship-detail-summary-hint::before {
    content: 'close';
}

.relationship-detail-shell[open] .relationship-detail-summary-hint {
    font-size: 0;
}

.relationship-detail {
    max-height: min(58vh, 520px);
    overflow-y: auto;
    border-top: 1px solid var(--sots-border);
    padding: 10px 12px 14px;
    background: #f8fafc;
}

.relationship-section {
    margin-top: 9px;
}

.relationship-section-title {
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #41566e;
    margin-bottom: 4px;
}

.relationship-chip {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: #edf4fb;
    color: #163a66;
    padding: 3px 7px;
    margin: 0 4px 4px 0;
    font-size: 12px;
    font-weight: 700;
}

/* =========================================================
   MESSAGE PANEL
   Confirmed live DOM:
   .operator-main > .messages
========================================================= */

.messages {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 14px;
    background: linear-gradient(180deg, #f8fafc 0%, #eef3f8 100%);
}

.operator-main>.messages {
    min-height: 0;
}

/* Message bubbles rendered by current legacy operator DOM */

.message {
    max-width: 820px;
    padding: 12px 14px;
    border-radius: 18px;
    margin-bottom: 10px;
    line-height: 1.45;
    font-size: 14px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, .05);
}

.message.inbound {
    background: #ffffff;
    border: 1px solid var(--sots-border);
    color: var(--sots-text);
}

.message.outbound {
    margin-left: auto;
    background: #204c82;
    border: 1px solid #204c82;
    color: #ffffff;
}

.empty {
    padding: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #607284;
}

/* =========================================================
   OPERATOR COMPOSER
   Confirmed live DOM:
   .operator-main > .composer
========================================================= */

.composer {
    flex: 0 0 auto;
    background: #ffffff;
    border-top: 1px solid var(--sots-border);
    padding: 10px 12px;
}

.composer-label {
    font-size: 12px;
    font-weight: 800;
    margin-bottom: 8px;
    color: var(--sots-muted);
}

.composer-row {
    display: flex;
    align-items: stretch;
    gap: 12px;
}

.composer textarea {
    flex: 1;
    min-height: 36px;
    max-height: 120px;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    padding: 6px 8px;
    font-size: var(--sots-field-font);
    resize: vertical;
    background: #f7f9fc;
    color: var(--sots-text);
    outline: none;
}

.composer textarea:focus {
    border-color: #2b5f9d;
    box-shadow: 0 0 0 2px rgba(43, 95, 157, .10);
}

.send-button {
    border: none;
    border-radius: var(--sots-control-radius);
    background: linear-gradient(180deg, #204c82 0%, #163a66 100%);
    color: #ffffff;
    padding: 0 12px;
    min-width: 72px;
    min-height: var(--sots-control-h);
    height: var(--sots-control-h);
    font-size: var(--sots-control-font);
    font-weight: 700;
    cursor: pointer;
    box-shadow: none;
    transition:
        transform .15s ease,
        opacity .15s ease;
}

.send-button:hover {
    opacity: .96;
    transform: translateY(-1px);
}

/* =========================================================
   PUBLIC WORKSPACE
   Confirmed live DOM:
   .sots-workspace-app
   .sots-card.sots-workspace-card
   .sots-card.sots-communication-panel
   #messageArea.sots-message-area
   #messageForm.sots-message-compose
========================================================= */

.sots-workspace-app {
    width: 100%;
    max-width: 1380px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sots-workspace-card {
    padding: 12px 16px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    border-radius: var(--sots-radius);
}

.sots-workspace-card h1,
.sots-workspace-card h2,
.sots-workspace-card h3 {
    margin: 0 0 8px 0;
    color: #163a66;
    font-size: 24px;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.sots-workspace-card p {
    margin: 0;
    color: #526477;
    font-size: 14px;
    line-height: 1.55;
}

.sots-communication-panel {
    min-height: calc(100vh - 210px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: linear-gradient(180deg, #f8fafc 0%, #eef3f8 100%);
}

.sots-message-area {
    flex: 1;
    min-height: calc(100vh - 338px);
    padding: 14px;
    background: linear-gradient(180deg, #f8fafc 0%, #eef3f8 100%);
}

.sots-message-compose {
    display: flex;
    align-items: stretch;
    gap: 10px;
    padding: 12px;
    border-top: 1px solid var(--sots-border);
    background: #ffffff;
}

.sots-input {
    flex: 1;
    width: 100%;
    min-height: 32px;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: #f7f9fc;
    padding: 6px 8px;
    font-size: var(--sots-field-font);
    color: var(--sots-text);
    resize: vertical;
    outline: none;
}

.sots-input:focus {
    border-color: #2b5f9d;
    box-shadow: 0 0 0 2px rgba(43, 95, 157, .10);
}

.sots-button {
    border: none;
    border-radius: var(--sots-control-radius);
    background: linear-gradient(180deg, #204c82 0%, #163a66 100%);
    color: #ffffff;
    padding: 0 12px;
    min-width: 0;
    min-height: var(--sots-control-h);
    height: var(--sots-control-h);
    font-size: var(--sots-control-font);
    font-weight: 700;
    cursor: pointer;
    box-shadow: none;
    transition:
        transform .15s ease,
        opacity .15s ease;
}

.sots-button:hover {
    opacity: .96;
    transform: translateY(-1px);
}


/* Public workspace compact composer controls */
.sots-message-compose .sots-button {
    align-self: center;
    min-width: 64px;
    min-height: var(--sots-control-h);
    height: var(--sots-control-h);
    padding: 0 10px;
    border-radius: var(--sots-control-radius);
    font-size: var(--sots-control-font);
    box-shadow: 0 5px 12px rgba(22, 58, 102, .16);
}

.sots-message-compose .sots-input {
    min-height: 32px;
}

/* =========================================================
   SHARED RENDERER COMPATIBILITY
========================================================= */

.message-thread {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.msg-row {
    display: flex;
    width: 100%;
}

.msg-row.inbound {
    justify-content: flex-start;
}

.msg-row.outbound {
    justify-content: flex-end;
}

.msg-bubble {
    max-width: 82%;
    padding: 12px 14px;
    border-radius: 18px;
    background: #ffffff;
    color: var(--sots-text);
    border: 1px solid var(--sots-border);
    box-shadow: 0 4px 14px rgba(15, 23, 42, .05);
}

.msg-row.outbound .msg-bubble {
    background: #204c82;
    border-color: #204c82;
    color: #ffffff;
}

.msg-text {
    font-size: 14px;
    line-height: 1.5;
    white-space: pre-wrap;
    word-break: break-word;
}

.msg-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
    font-size: 12px;
    opacity: .75;
}

.msg-channel,
.msg-transport {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .08);
    font-size: 11px;
    font-weight: 800;
}

.msg-row.outbound .msg-channel,
.msg-row.outbound .msg-transport {
    background: rgba(255, 255, 255, .18);
}

.msg-time {
    white-space: nowrap;
}


body.sots-operator-page .sots-nav,
body.sots-operator-page .sots-subnav {
    flex: 0 0 auto;
}

/* Discovery-aligned sheet titlebar */
body.sots-operator-page .sots-subnav {
    min-height: 36px;
    padding: 4px 12px;
    background: #ffffff;
    border-bottom: 1px solid var(--op-border, #d8e1ec);
    box-shadow: none;
}

body.sots-operator-page .sots-page-title {
    font-size: 15px;
    font-weight: 750;
    letter-spacing: -0.02em;
    color: var(--op-ink, #071b35);
    line-height: 1.15;
}

body.sots-operator-page .sots-page-context {
    margin-top: 1px;
    font-size: 10px;
    font-weight: 500;
    color: #64748b;
    line-height: 1.25;
}

body.sots-operator-page .sots-nav {
    padding: 4px 10px 6px;
    background: #ffffff;
    gap: 4px;
    border-bottom: 1px solid var(--op-border, #d8e1ec);
}

body.sots-operator-page .sots-nav-item {
    border-radius: var(--op-radius, 6px);
    padding: 0 10px;
    min-height: var(--op-control-h, 28px);
    display: inline-flex;
    align-items: center;
    font-size: 11px;
    font-weight: 700;
    border: 1px solid transparent;
    background: transparent;
    color: #40536a;
}

body.sots-operator-page .sots-nav-item.active {
    background: #ffffff;
    border-color: var(--op-border, #d8e1ec);
    color: var(--op-accent, #1f446d);
    box-shadow: none;
}

body.sots-operator-page .sots-nav-item[href*="logout"] {
    color: var(--op-muted, #5f6b7a);
    font-weight: 600;
}

body.sots-operator-page .operator-header-menu-mount {
    display: inline-flex;
    align-items: center;
}

body.sots-operator-page .operator-menu-button {
    min-height: var(--op-control-h, 28px);
    border-radius: var(--op-radius, 8px);
    border: 1px solid var(--op-border, rgba(16, 42, 67, 0.12));
    background: #ffffff;
    color: var(--op-ink, #102a43);
    padding: 0 11px;
    font-size: 12px;
    font-weight: 650;
    letter-spacing: 0;
    box-shadow: none;
}

body.sots-operator-page .operator-menu-button:hover,
body.sots-operator-page .operator-menu-button:focus {
    background: var(--op-soft, #f6f9fd);
    border-color: rgba(16, 42, 67, 0.18);
}

body.sots-operator-page .operator-menu {
    min-width: 260px;
    max-height: min(72vh, calc(100dvh - 72px));
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    border: 1px solid var(--op-border, #d8e1ec);
    border-radius: 8px;
    box-shadow: 0 14px 34px rgba(15, 45, 84, 0.16);
    padding: 4px;
}

body.sots-operator-page .operator-panel-header {
    padding: 8px 10px;
    border-bottom: 1px solid var(--op-border-soft, #e8edf5);
    background: transparent;
}

body.sots-operator-page .operator-panel-header .operator-subtitle {
    margin: 0;
    font-size: 11px;
    color: var(--op-muted, #5f6b7a);
}

body.sots-operator-page .operator-title {
    font-size: 15px;
    font-weight: 750;
    letter-spacing: -0.02em;
    color: var(--op-ink, #071b35);
    margin-bottom: 1px;
}

body.sots-operator-page .operator-subtitle {
    font-size: 10px;
    font-weight: 500;
    color: #64748b;
    line-height: 1.3;
}

body.sots-operator-page .operator-lane-toggle {
    display: inline-flex;
    gap: 0;
    margin: 0;
    padding: 3px;
    border-radius: 10px;
    background: var(--op-soft, #f6f9fd);
    border: 1px solid var(--op-border-soft, rgba(16, 42, 67, 0.08));
}

body.sots-operator-page .operator-lane-button {
    flex: 0 0 auto;
    min-height: 24px;
    min-width: 0;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: var(--op-muted, #5f7488);
    font-size: 11px;
    font-weight: 650;
    cursor: pointer;
    padding: 0 8px;
    white-space: nowrap;
}

body.sots-operator-page .operator-lane-button:hover {
    color: var(--op-ink, #102a43);
}

body.sots-operator-page .operator-lane-button.is-active {
    background: #ffffff;
    color: var(--op-ink, #102a43);
    font-weight: 750;
    box-shadow: 0 1px 2px rgba(16, 42, 67, 0.06);
}

body.sots-operator-page .operator-alerts {
    gap: 6px;
    margin-top: 8px;
    flex-wrap: wrap;
}

body.sots-operator-page .workspace-copy-button,
body.sots-operator-page .workspace-launch-button,
body.sots-operator-page .operator-action-link {
    border-radius: var(--op-radius, 6px);
    font-weight: 650;
    font-size: 11px;
    min-height: var(--op-control-h, 24px);
    height: var(--op-control-h, 24px);
    padding: 0 8px;
    line-height: 1;
}

body.sots-operator-page .send-button {
    border-radius: 6px;
    font-weight: 700;
    font-size: 11px;
    line-height: 1;
    min-width: 0;
    max-width: none;
}

body.sots-operator-page .workspace-launch-button,
body.sots-operator-page .send-button {
    background: var(--op-accent, #1f446d);
    border: 1px solid var(--op-accent, #1f446d);
    color: #ffffff;
}

body.sots-operator-page .alert-button {
    border-radius: 999px;
    font-weight: 650;
    font-size: 12px;
    min-height: 28px;
    height: 28px;
    padding: 0 12px;
    line-height: 1;
    background: #ffffff;
    border: 1px solid var(--op-border, rgba(16, 42, 67, 0.12));
    color: var(--op-muted, #5f7488);
    box-shadow: none;
}

body.sots-operator-page .alert-button:hover {
    background: var(--op-soft, #f6f9fd);
    color: var(--op-ink, #102a43);
}

body.sots-operator-page .alert-button.enabled {
    background: #eef8f2;
    border-color: #b7dfc5;
    color: #1a6b45;
}

body.sots-operator-page .workspace-copy-button,
body.sots-operator-page .operator-action-link {
    background: #ffffff;
    border: 1px solid var(--op-border, rgba(16, 42, 67, 0.12));
    color: var(--op-accent, #1f446d);
}

body.sots-operator-page .workspace-copy-button:hover,
body.sots-operator-page .operator-action-link:hover,
body.sots-operator-page .operator-new-dating-button:hover {
    background: #f4f7fb;
    border-color: #cfd8e3;
}

body.sots-operator-page .operator-list-context {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 6px;
    padding: 4px 8px;
    border-bottom: 1px solid var(--op-border-soft, #e8edf5);
    background: #f7fafc;
    overflow: visible;
}

body.sots-operator-page .operator-list-context[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-workspace-host > .operator-list-context {
    flex: 0 0 auto;
    z-index: 30;
}

body.sots-operator-page .operator-list-context-kicker {
    display: inline-flex;
    align-items: center;
    min-height: var(--sots-control-h);
    font-size: 9px;
    font-weight: 650;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #687789;
    line-height: 1.05;
    flex: 0 0 auto;
}

body.sots-operator-page .operator-list-context-select {
    appearance: auto;
    flex: 0 1 auto;
    min-width: 10.5rem;
    max-width: 100%;
    height: var(--sots-control-h);
    min-height: var(--sots-control-h);
    padding: 0 var(--sots-control-pad-x);
    border: 1px solid var(--sots-control-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    color: var(--sots-text);
    font-size: var(--sots-control-font);
    font-weight: 650;
    line-height: calc(var(--sots-control-h) - 4px);
    cursor: pointer;
}

body.sots-operator-page .operator-list-context-select:focus {
    outline: 2px solid var(--sots-primary-soft);
    outline-offset: 1px;
}

body.sots-operator-page .operator-list-context-reset {
    flex: 0 0 auto;
    height: var(--sots-control-h);
    min-height: var(--sots-control-h);
    margin-left: auto;
    padding: 0 calc(var(--sots-control-pad-x) + 2px);
    border: 1px solid var(--sots-primary);
    border-radius: var(--sots-control-radius);
    background: var(--sots-primary);
    color: #fff;
    font-size: var(--sots-control-font);
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}

body.sots-operator-page .operator-list-context-reset:hover {
    background: var(--sots-primary-dark);
    border-color: var(--sots-primary-dark);
}

body.sots-operator-page .operator-list-context-reset:focus {
    outline: 2px solid var(--sots-primary-soft);
    outline-offset: 1px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-chooser-modal {
    position: fixed;
    inset: 0;
    z-index: 240;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-modal {
    z-index: 40000;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-modal .operator-focus-card {
    transform: translateY(-4vh);
}

body.sots-operator-page:not(.sots-operator-focus-page) #operatorFocusModal.is-opcon-passthrough:not([hidden]) {
    pointer-events: none;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    box-sizing: border-box;
}

body.sots-operator-page.sots-opcon-focus-passthrough .operator-workspace-host > .operator-list-context {
    z-index: 30;
}

body.sots-operator-page:not(.sots-operator-focus-page) #operatorFocusModal.is-opcon-passthrough:not([hidden]) .operator-chooser-backdrop {
    pointer-events: none;
    background: rgba(248, 250, 252, 0.1);
}

body.sots-operator-page:not(.sots-operator-focus-page) #operatorFocusModal.is-opcon-passthrough:not([hidden]) .operator-focus-card {
    pointer-events: auto;
    width: min(840px, calc(100vw - 48px));
    max-height: min(calc(100vh - 48px), 860px);
}

body.sots-operator-page.sots-opcon-focus-passthrough .operator-workspace-host > .operator-list-context:has(.operator-contact-categories-picker[open]) {
    position: relative;
    z-index: 40001;
}

body.sots-operator-page.sots-opcon-focus-passthrough .operator-contact-categories-picker[open] .operator-contact-categories-panel {
    z-index: 40002;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-head-removal-brief-modal {
    z-index: 30001;
}

body.sots-operator-focus-shell #operatorHeadRemovalBriefModal {
    display: none !important;
}

body.sots-operator-focus-page {
    overflow: hidden;
}

body.sots-operator-focus-page .sots-shell,
body.sots-operator-focus-page .sots-content.sots-operator-focus-content {
    height: calc(100vh - 52px);
    min-height: 0;
    padding: 0;
    overflow: hidden;
}

body.sots-operator-focus-page .sots-focus-page-stack {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 0;
}

body.sots-operator-focus-page .sots-focus-opcon-underlay {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    background: var(--sots-surface, #fff);
}

body.sots-operator-focus-page .operator-focus-modal--standalone {
    position: fixed;
    inset: 0;
    z-index: 30000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    pointer-events: none;
}

body.sots-operator-focus-page .operator-focus-modal--standalone .operator-chooser-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(248, 250, 252, 0.12);
    pointer-events: none;
}

body.sots-operator-focus-page .operator-focus-modal--standalone .operator-focus-card {
    position: relative;
    z-index: 1;
    pointer-events: auto;
    width: min(960px, calc(100vw - 32px));
    max-height: min(calc(100vh - 20px), 920px);
    height: auto;
    box-shadow: 0 18px 48px rgba(16, 43, 72, 0.22);
    border-radius: var(--sots-control-radius, 6px);
    border-right: 0;
}

@media (min-width: 901px) {
    body.sots-operator-focus-page .operator-focus-modal--standalone .operator-focus-card {
        width: min(1100px, calc(100vw - 48px));
    }
}

body.sots-operator-focus-page .operator-focus-modal--standalone .operator-focus-body {
    overflow-y: auto;
    min-height: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-brief-mount {
    margin-top: 0;
    max-height: min(68vh, 720px);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--sots-border, #d8dde3);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-brief-mount[hidden] {
    display: none !important;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-brief-mount .murano-decision-panel {
    margin: 0;
    padding: 8px 10px;
    border: 0;
    border-radius: 0;
    background: transparent;
}

body.sots-opcon-embed #operatorFocusModal,
body.sots-opcon-embed #sotsHeaderFocusBtn,
body.sots-opcon-embed #sotsHeaderFocusBtnMobileHub,
body.sots-opcon-embed #operatorFocusBtn,
body.sots-opcon-embed #operatorCampaignWorkBtn,
body.sots-opcon-embed #operatorCampaignStopBtn,
body.sots-opcon-embed #operatorHeadRemovalBriefReopen {
    display: none !important;
}

body.sots-opcon-embed > header.sots-topbar {
    display: none !important;
}

body.sots-opcon-embed.sots-operator-page .sots-shell,
body.sots-opcon-embed.sots-operator-page .sots-content.sots-operator-content {
    height: 100vh;
    min-height: 0;
    padding: 0;
}

body.sots-opcon-embed .operator-list-context {
    padding-top: 6px;
}

body.sots-opcon-embed.sots-redact-sensitive #sots-redact-banner {
    display: none !important;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-chooser-modal[hidden] {
    display: none !important;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-chooser-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(16, 42, 67, .35);
}

html.sots-redact-focus-underlay
  :is(body.sots-operator-page, body.sots-operator-focus-shell)
  .operator-focus-modal
  .operator-chooser-backdrop {
    background: rgba(255, 255, 255, 0.1);
}

html.sots-redact-focus-underlay:not(.sots-redact-focus-underlay-work).sots-redact-sensitive
  #ticketList
  .ticket:not(.active)
  .person-top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    min-height: 22px;
}

html.sots-redact-focus-underlay:not(.sots-redact-focus-underlay-work).sots-redact-sensitive
  #ticketList
  .ticket:not(.active)
  .person-name,
html.sots-redact-focus-underlay:not(.sots-redact-focus-underlay-work).sots-redact-sensitive
  #ticketList
  .ticket:not(.active)
  .person-time {
    min-height: 14px;
}

html.sots-redact-focus-underlay:not(.sots-redact-focus-underlay-work).sots-redact-sensitive
  #ticketList
  .ticket:not(.active)
  .person-name:not(.sots-redact-blurred),
html.sots-redact-focus-underlay:not(.sots-redact-focus-underlay-work).sots-redact-sensitive
  #ticketList
  .ticket:not(.active)
  .person-time:not(.sots-redact-blurred) {
    position: relative;
    overflow: hidden;
    border-radius: 4px;
    background: rgba(16, 42, 67, 0.12);
    color: transparent !important;
}

html.sots-redact-focus-underlay:not(.sots-redact-focus-underlay-work).sots-redact-sensitive
  #ticketList
  .ticket:not(.active)
  .person-name:not(.sots-redact-blurred)::after,
html.sots-redact-focus-underlay:not(.sots-redact-focus-underlay-work).sots-redact-sensitive
  #ticketList
  .ticket:not(.active)
  .person-time:not(.sots-redact-blurred)::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(
        90deg,
        rgba(16, 42, 67, 0.16) 0%,
        rgba(16, 42, 67, 0.24) 45%,
        rgba(16, 42, 67, 0.14) 100%
    );
    filter: blur(6px);
}

html.sots-redact-focus-underlay-work.sots-redact-sensitive
  :is(#ticketList, .operator-sidebar)
  .person-avatar {
    filter: none !important;
    -webkit-filter: none !important;
    opacity: 1 !important;
}

html.sots-redact-focus-underlay-work.sots-redact-sensitive
  :is(#ticketList, .operator-sidebar)
  :is(.sots-redact-blurred, .person-name, .person-time, .person-preview, .person-reach-note, .person-reach-k, .person-reach-summary, .person-source, .person-last-use, .person-contact-methods, .person-contact-method-value, .person-default-phone, .person-last-use-call, .person-last-use-phone) {
    filter: none !important;
    -webkit-filter: none !important;
    color: inherit !important;
    background: transparent !important;
    text-shadow: none !important;
}

html.sots-redact-focus-underlay-work.sots-redact-sensitive
  :is(#ticketList, .operator-sidebar)
  .person-name::after,
html.sots-redact-focus-underlay-work.sots-redact-sensitive
  :is(#ticketList, .operator-sidebar)
  .person-time::after {
    content: none !important;
    display: none !important;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-chooser-card {
    position: relative;
    z-index: 1;
    width: min(420px, 100%);
    max-height: min(70vh, 560px);
    overflow: auto;
    padding: 14px;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 16px 40px rgba(16, 42, 67, .18);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-chooser-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 4px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-chooser-title {
    margin: 0;
    font-size: 18px;
    font-weight: 750;
    color: #102a43;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-chooser-close {
    appearance: none;
    border: 0;
    background: transparent;
    color: #174ea6;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-btn {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--sots-control-h);
    min-height: var(--sots-control-h);
    margin-left: auto;
    padding: 0 12px;
    border: 1px solid var(--sots-primary);
    border-radius: var(--sots-control-radius);
    background: var(--sots-primary);
    color: #fff;
    font-size: var(--sots-control-font);
    font-weight: 650;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-btn:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-btn:focus {
    background: var(--sots-primary-dark);
    outline: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-modal .operator-focus-card {
    width: min(560px, calc(100vw - 24px));
    max-height: calc(100vh - 20px);
    display: flex;
    flex-direction: column;
}

@media (min-width: 901px) {
    :is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-modal .operator-focus-card {
        width: min(840px, calc(100vw - 48px));
        max-height: min(calc(100vh - 20px), 860px);
    }
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-modal .operator-focus-card.operator-chooser-card {
    max-height: min(calc(100vh - 20px), 860px);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-body {
    display: grid;
    gap: 4px;
    padding: 2px 0 10px;
    overflow-y: auto;
    min-height: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-active {
    display: grid;
    gap: 3px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-item {
    margin: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-item summary {
    list-style: none;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-item summary::-webkit-details-marker {
    display: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-line {
    display: block;
    min-height: 1.35em;
    color: var(--sots-text);
    font-size: 13px;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.sots-operator-page summary.operator-focus-line {
    padding: 2px 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-detail {
    display: grid;
    gap: 8px;
    margin: 6px 0 0;
    padding: 8px 0 0;
    border-top: 1px solid var(--sots-border);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-done-wrap {
    margin: 0;
    padding: 8px 0 0;
    border-top: 1px solid var(--sots-border);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-done-wrap[hidden] {
    display: none !important;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-done-wrap summary {
    display: flex;
    align-items: center;
    gap: 4px;
    color: var(--sots-muted);
    cursor: pointer;
    font-size: 12px;
    font-weight: 650;
    letter-spacing: 0.02em;
    list-style: none;
    user-select: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-done-wrap summary::-webkit-details-marker {
    display: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-done-count {
    color: #94a3b8;
    font-weight: 600;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-done-list {
    display: grid;
    gap: 6px;
    margin-top: 8px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-done-list.is-empty {
    min-height: 36px;
    border: 1px dashed var(--sots-border);
    border-radius: var(--sots-control-radius);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-done-wrap.is-drop-target {
    outline: 2px solid var(--sots-primary-soft);
    outline-offset: 2px;
    border-radius: var(--sots-control-radius);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-done-item {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #64748b;
    font-size: 12px;
    line-height: 1.35;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-done-label {
    flex: 1 1 auto;
    min-width: 0;
    color: var(--sots-muted);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-restore {
    appearance: none;
    flex: 0 0 auto;
    height: var(--sots-control-h);
    padding: 0 var(--sots-control-pad-x);
    border: 1px solid var(--sots-primary);
    border-radius: var(--sots-control-radius);
    background: var(--sots-primary-soft);
    color: var(--sots-primary);
    font-size: var(--sots-control-font);
    font-weight: 650;
    line-height: 1;
    cursor: pointer;
    white-space: nowrap;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-restore:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-restore:focus {
    background: #dfeaf5;
    outline: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-done-delete {
    appearance: none;
    flex: 0 0 auto;
    height: var(--sots-control-h);
    padding: 0 var(--sots-control-pad-x);
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: #fff;
    color: #9a3412;
    font-size: var(--sots-control-font);
    font-weight: 650;
    line-height: 1;
    cursor: pointer;
    white-space: nowrap;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-done-delete:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-done-delete:focus {
    background: #fff7ed;
    outline: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-row {
    display: grid;
    grid-template-columns: 6.5rem minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    font-size: 13px;
    line-height: 1.35;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-label {
    color: var(--sots-muted);
    font-size: 11px;
    font-weight: 650;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-value {
    color: var(--sots-text);
    word-break: break-word;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-row-preview .operator-focus-value {
    color: #334155;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-empty {
    margin: 0;
    color: #475569;
    font-size: 13px;
    line-height: 1.4;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding-top: 4px;
    border-top: 1px solid var(--sots-border);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-open-btn {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--sots-control-h);
    min-height: var(--sots-control-h);
    padding: 0 14px;
    border: 1px solid var(--sots-primary);
    border-radius: var(--sots-control-radius);
    background: var(--sots-primary);
    color: #fff;
    font-size: var(--sots-control-font);
    font-weight: 650;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-open-btn:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-open-btn:focus {
    background: var(--sots-primary-dark);
    outline: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-open-btn:disabled {
    opacity: 0.45;
    cursor: default;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-secondary-btn {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--sots-control-h);
    min-height: var(--sots-control-h);
    padding: 0 12px;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    color: var(--sots-text);
    font-size: var(--sots-control-font);
    font-weight: 600;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-secondary-btn:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-secondary-btn:focus {
    background: var(--shell-soft, #f4f7fb);
    outline: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-secondary-btn:disabled {
    opacity: 0.45;
    cursor: default;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-btn-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
    height: 16px;
    margin-left: 6px;
    padding: 0 4px;
    border-radius: 999px;
    background: #fff;
    color: var(--sots-primary);
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-btn-badge[hidden] {
    display: none !important;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-section-label {
    margin: 6px 0 2px;
    color: var(--sots-muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-section-label:first-child {
    margin-top: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 4px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-top-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--sots-control-h, 24px);
    padding: 0 var(--sots-control-pad-x, 8px);
    border: 1px solid var(--sots-border, #d5dbe3);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
    color: var(--sots-primary, #0b3d6e);
    font-size: var(--sots-control-font, 12px);
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-top-btn:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-top-btn:focus {
    border-color: var(--sots-primary, #0b3d6e);
    background: var(--sots-primary-soft, #eef4fb);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-fold-wrap,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-histories-wrap {
    margin: 0 0 3px;
    border: 1px solid var(--sots-border, #d5dbe3);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-fold-wrap summary,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-histories-wrap summary {
    display: flex;
    align-items: center;
    gap: 4px;
    min-height: var(--sots-control-h, 24px);
    padding: 4px 8px;
    color: var(--sots-text, #1f2937);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
    cursor: pointer;
    list-style: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-fold-wrap summary::-webkit-details-marker,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-histories-wrap summary::-webkit-details-marker {
    display: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-body details > summary::-webkit-details-marker {
    display: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-body details > summary::before {
    content: '▸';
    flex: 0 0 auto;
    color: var(--sots-muted, #687789);
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    margin-right: 2px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-body details[open] > summary::before {
    content: '▾';
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-fold-meta,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-histories-meta {
    color: var(--sots-muted, #687789);
    font-weight: 500;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-fold-body {
    display: grid;
    gap: 3px;
    padding: 0 6px 6px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-wrap .operator-focus-fold-body {
    display: grid;
    gap: 3px;
    padding: 0 6px 6px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-body {
    display: grid;
    gap: 3px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-body > .operator-focus-fold-wrap {
    margin: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-copy {
    display: grid;
    gap: 2px;
    margin-bottom: 4px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-copy[hidden] {
    display: none !important;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-title {
    font-size: var(--sots-control-font);
    font-weight: 650;
    color: var(--sots-text);
    line-height: 1.3;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-desc {
    margin-top: 4px;
    font-size: 11px;
    font-weight: 500;
    color: var(--sots-muted);
    line-height: 1.4;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-desc[hidden] {
    display: none !important;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-catalog {
    display: grid;
    gap: 6px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-card {
    display: grid;
    gap: 2px;
    width: 100%;
    margin: 0;
    padding: 8px;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    text-align: left;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-card.is-focused {
    border-color: var(--sots-primary);
    background: var(--sots-primary-soft);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-focused-empty {
    margin: 0 0 4px;
    font-size: 11px;
    color: var(--sots-muted);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-work-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    margin: 0;
    padding: 1px 4px;
    min-height: var(--sots-control-h, 24px);
    border: 1px solid var(--sots-border, #d5dbe3);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-work-status {
    flex: 1 1 auto;
    min-width: 0;
    font-size: var(--sots-control-font);
    line-height: 1.35;
    color: var(--sots-muted);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-work-status.is-working {
    color: var(--sots-primary);
    font-weight: 650;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-work-status.is-ready {
    color: var(--sots-text);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-wrap.is-campaign-working {
    border-color: var(--sots-primary);
    box-shadow: inset 3px 0 0 var(--sots-primary);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-wrap.is-campaign-working summary,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-wrap.is-campaign-ready summary {
    background: var(--sots-primary-soft);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-wrap.is-single-campaign .operator-campaign-catalog {
    display: none !important;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-tools {
    display: grid;
    gap: 3px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-tools > .operator-focus-fold-wrap {
    margin: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-wrap.is-single-campaign .operator-focus-campaign-hero-fold[hidden] {
    display: none !important;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-wrap.is-single-campaign .operator-focus-campaign-hero-fold:not([hidden]) {
    display: block;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-hero-fold > summary {
    list-style: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-hero-fold > summary::-webkit-details-marker {
    display: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-hero-body {
    display: grid;
    gap: 3px;
    margin-top: 2px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-wrap.is-single-campaign .operator-focus-campaign-hero[hidden] {
    display: none !important;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-wrap.is-single-campaign .operator-focus-campaign-hero:not([hidden]) {
    display: grid;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-picker-label {
    display: block;
    margin: 0 0 4px;
    color: var(--sots-muted);
    font-size: 9px;
    font-weight: 650;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-picker {
    box-sizing: border-box;
    width: 100%;
    height: var(--sots-control-h);
    margin-bottom: 6px;
    padding: 0 var(--sots-control-pad-x);
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    color: var(--sots-text);
    font-size: var(--sots-control-font);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-body > .operator-focus-fold-wrap {
    margin-bottom: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-ask {
    box-sizing: border-box;
    width: 100%;
    min-height: 120px;
    padding: 6px 8px;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    color: var(--sots-text);
    font: 12px/1.45 system-ui, sans-serif;
    resize: vertical;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-ask:focus {
    outline: none;
    border-color: var(--sots-primary);
    box-shadow: 0 0 0 1px var(--sots-primary-soft);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-ask-status {
    display: block;
    margin-top: 4px;
    min-height: 14px;
    color: var(--sots-muted);
    font-size: 10px;
    text-align: right;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-ask-status.is-ok {
    color: var(--sots-primary);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-ask-status.is-err {
    color: #b42318;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-fold-empty {
    color: var(--sots-muted, #687789);
    font-size: 12px;
    line-height: 1.35;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-add {
    width: 100%;
    min-height: var(--sots-control-h, 24px);
    padding: 4px 8px;
    border: 1px solid var(--sots-border, #d5dbe3);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
    color: var(--sots-text, #1f2937);
    font-size: var(--sots-control-font, 12px);
    line-height: 1.35;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-add:focus {
    outline: none;
    border-color: var(--sots-primary, #0b3d6e);
    box-shadow: 0 0 0 1px var(--sots-primary-soft, #eef4fb);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-vault-wrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    border: 1px solid var(--sots-border, #d5dbe3);
    border-radius: var(--sots-control-radius, 6px);
    background: #fafbfc;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-vault-label {
    color: var(--sots-text, #1f2937);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-areas {
    display: grid;
    gap: 4px;
    max-height: min(48vh, 420px);
    overflow-y: auto;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-area-wrap {
    border: 1px solid var(--sots-border, #d5dbe3);
    border-radius: var(--sots-control-radius, 6px);
    background: #fafbfc;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-area-wrap summary {
    display: flex;
    align-items: center;
    gap: 4px;
    min-height: var(--sots-control-h, 24px);
    padding: 4px 8px;
    color: var(--sots-text, #1f2937);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
    cursor: pointer;
    list-style: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-area-wrap summary::-webkit-details-marker {
    display: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-area-body {
    display: grid;
    gap: 4px;
    padding: 0 8px 8px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clip-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 6px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clip-open {
    min-height: var(--sots-control-h, 24px);
    padding: 2px 6px;
    border: 1px solid var(--sots-border, #d5dbe3);
    border-radius: var(--sots-control-radius, 6px);
    background: #fff;
    color: var(--sots-text, #1f2937);
    font-size: 12px;
    line-height: 1.35;
    text-align: left;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clip-open:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clip-open:focus {
    border-color: var(--sots-primary, #0b3d6e);
    background: var(--sots-primary-soft, #eef4fb);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clip-focus {
    min-height: var(--sots-control-h, 24px);
    padding: 0 8px;
    border: 1px solid var(--sots-border, #d5dbe3);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
    color: var(--sots-primary, #0b3d6e);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clip-focus:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clip-focus:focus {
    border-color: var(--sots-primary, #0b3d6e);
    background: var(--sots-primary-soft, #eef4fb);
    outline: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clip-delete {
    min-height: var(--sots-control-h, 24px);
    padding: 0 8px;
    border: 1px solid var(--sots-border, #d5dbe3);
    border-radius: var(--sots-control-radius, 6px);
    background: #fff;
    color: var(--sots-muted, #687789);
    font-size: 12px;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clip-delete:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clip-delete:focus {
    border-color: #c0392b;
    color: #c0392b;
    background: #fff5f4;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-area-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-area-count {
    color: var(--sots-muted, #687789);
    font-weight: 500;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-vault-open,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-area-open,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-open-all,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-resource-open,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-discussion-open {
    min-height: var(--sots-control-h, 24px);
    padding: 0 8px;
    border: 1px solid var(--sots-border, #d5dbe3);
    border-radius: var(--sots-control-radius, 6px);
    background: #fff;
    color: var(--sots-primary, #0b3d6e);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-vault-open:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-vault-open:focus,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-area-open:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-area-open:focus,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-open-all:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-open-all:focus,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-resource-open:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-resource-open:focus,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-discussion-open:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-discussion-open:focus {
    border-color: var(--sots-primary, #0b3d6e);
    background: var(--sots-primary-soft, #eef4fb);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-clips-open-all {
    justify-self: start;
    margin-top: 2px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-park-body {
    display: grid;
    gap: 4px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-histories-body {
    display: grid;
    gap: 6px;
    padding: 0 8px 8px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-histories-list {
    display: grid;
    gap: 6px;
    max-height: min(56vh, 520px);
    overflow-y: auto;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-card {
    border: 1px solid var(--sots-border, #d5dbe3);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
    min-width: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-head {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 4px 6px;
    min-width: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-title-wrap {
    display: grid;
    gap: 4px;
    min-width: 0;
    flex: 1 1 auto;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-toggle {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--sots-muted, #687789);
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-grip {
    flex: 0 0 auto;
    width: 18px;
    height: 22px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--sots-muted, #687789);
    font-size: 12px;
    line-height: 1;
    cursor: grab;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-grip:active {
    cursor: grabbing;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-card.is-dragging {
    opacity: 0.72;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-card.is-drop-before {
    box-shadow: inset 0 2px 0 0 var(--sots-primary, #0b3d6e);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-card.is-drop-after {
    box-shadow: inset 0 -2px 0 0 var(--sots-primary, #0b3d6e);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-title {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    height: var(--sots-control-h, 24px);
    padding: 0 6px;
    border: 1px solid transparent;
    border-radius: var(--sots-control-radius, 6px);
    background: transparent;
    color: var(--sots-text, #1f2937);
    font-size: 12px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-title:focus {
    border-color: var(--sots-border, #d5dbe3);
    background: #fff;
    outline: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-card.is-row-only .operator-focus-case-field-meta {
    display: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-save {
    color: var(--sots-muted, #687789);
    font-size: 10px;
    white-space: nowrap;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-save.is-err {
    color: #b42318;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-body {
    display: grid;
    gap: 10px;
    padding: 0 6px 8px;
    min-width: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-body[hidden] {
    display: none !important;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-response-wrap,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-note-wrap,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-log-wrap,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-dated-log-wrap,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-contacts-wrap,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-misc-wrap {
    display: grid;
    gap: 4px;
    min-width: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-response-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-field-label {
    color: var(--sots-muted, #687789);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-field-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-field-foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    min-height: 16px;
    padding: 2px 0 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-field-meta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-field-save {
    color: var(--sots-muted, #687789);
    font-size: 10px;
    white-space: nowrap;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-field-save.is-err {
    color: #b42318;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-field-save-link,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-notes .operator-focus-field-save-link {
    appearance: none;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--sots-muted, #687789);
    font-size: 10px;
    font-weight: 500;
    line-height: 1.2;
    text-decoration: underline;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-field-save-link:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-notes .operator-focus-field-save-link:hover {
    color: var(--sots-text, #1f2937);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-note,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-dated-log,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-contacts,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-response,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-misc-note {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    padding: 8px 10px;
    border: 1px solid var(--sots-border, #d5dbe3);
    border-radius: var(--sots-control-radius, 6px);
    background: #fff;
    color: var(--sots-text, #1f2937);
    font-size: 12px;
    line-height: 1.45;
    overflow-y: auto;
    overflow-anchor: none;
    resize: vertical;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-misc-wrap {
    padding-top: 6px;
    border-top: 1px solid var(--sots-border, #d5dbe3);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-misc-note {
    height: 140px;
    min-height: 100px;
    max-height: 280px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-notes .operator-thread-notes-head {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    min-width: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-response {
    height: 96px;
    min-height: 72px;
    max-height: 200px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-note {
    height: 220px;
    min-height: 160px;
    max-height: 320px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-dated-log,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-contacts {
    height: 160px;
    min-height: 120px;
    max-height: 280px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-images-wrap {
    display: grid;
    gap: 6px;
    margin-top: 2px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-images-wrap .operator-focus-images.is-empty {
    display: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-images-wrap .operator-focus-images-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    justify-content: flex-end;
    padding-top: 2px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-copy,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-remove,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-add {
    height: var(--sots-control-h, 24px);
    padding: 0 var(--sots-control-pad-x, 8px);
    border: 1px solid var(--sots-border, #d5dbe3);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
    color: var(--sots-text, #1f2937);
    font-size: var(--sots-control-font, 12px);
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-remove {
    color: #9a3412;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-add {
    justify-self: start;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-case-histories-empty {
    color: var(--sots-muted, #687789);
    font-size: 12px;
    padding: 2px 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-resume-row,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-queue-open {
    appearance: none;
    display: block;
    width: 100%;
    min-height: var(--sots-control-h);
    padding: 4px 8px;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-primary-soft);
    color: var(--sots-primary);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
    text-align: left;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-resume-row:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-resume-row:focus,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-queue-open:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-queue-open:focus {
    background: #dfeaf5;
    outline: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-queue-row {
    display: flex;
    align-items: center;
    gap: 6px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-queue-open {
    flex: 1 1 auto;
    min-width: 0;
    background: var(--sots-surface);
    color: var(--sots-text);
    font-weight: 500;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-queue-done {
    appearance: none;
    flex: 0 0 auto;
    height: var(--sots-control-h);
    padding: 0 var(--sots-control-pad-x);
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    color: var(--sots-muted);
    font-size: var(--sots-control-font);
    font-weight: 650;
    line-height: 1;
    cursor: pointer;
    white-space: nowrap;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-queue-done:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-queue-done:focus {
    background: #f8fafc;
    color: var(--sots-text);
    outline: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-row {
    margin-bottom: 2px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-list {
    display: grid;
    gap: 3px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-card {
    display: grid;
    gap: 0;
    padding: 0;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    overflow: hidden;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-card.is-row-only {
    border-color: var(--sots-border);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-card:not(.is-row-only) {
    gap: 4px;
    padding-bottom: 4px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-card.is-dragging {
    opacity: 0.55;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-card.is-drop-before {
    box-shadow: inset 0 2px 0 0 var(--sots-primary);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-card.is-drop-after {
    box-shadow: inset 0 -2px 0 0 var(--sots-primary);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-card.is-drop-target {
    border-color: var(--sots-primary);
    box-shadow: inset 0 0 0 1px var(--sots-primary);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-head {
    display: flex;
    align-items: center;
    gap: 3px;
    min-width: 0;
    min-height: var(--sots-control-h);
    padding: 1px 3px 1px 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-grip {
    appearance: none;
    flex: 0 0 16px;
    width: 16px;
    height: var(--sots-control-h);
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--sots-muted);
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.08em;
    cursor: grab;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-grip:active {
    cursor: grabbing;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-label {
    flex: 1 1 auto;
    min-width: 0;
    height: calc(var(--sots-control-h) - 2px);
    padding: 0 4px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--sots-text);
    font-size: var(--sots-control-font);
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-label:focus {
    outline: none;
    background: var(--sots-primary-soft);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-toggle {
    appearance: none;
    flex: 0 0 auto;
    width: 22px;
    height: calc(var(--sots-control-h) - 2px);
    padding: 0;
    border: 0;
    border-radius: 3px;
    background: transparent;
    color: var(--sots-muted);
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-toggle:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-toggle:focus {
    color: var(--sots-primary);
    background: var(--sots-primary-soft);
    outline: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-go,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-hide {
    appearance: none;
    flex: 0 0 auto;
    height: calc(var(--sots-control-h) - 2px);
    padding: 0 6px;
    border: 1px solid var(--sots-border);
    border-radius: 3px;
    background: var(--sots-surface);
    font-size: 9px;
    font-weight: 650;
    line-height: 1;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-go,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-go-link {
    border-color: var(--sots-primary);
    background: var(--sots-primary-soft);
    color: var(--sots-primary);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-go-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-pic {
    flex: 0 0 auto;
    height: calc(var(--sots-control-h) - 2px);
    padding: 0 5px;
    border: 1px solid var(--sots-border);
    border-radius: 3px;
    background: var(--sots-surface);
    color: var(--sots-muted);
    font-size: 9px;
    font-weight: 650;
    line-height: 1;
    text-decoration: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-pic:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-pic:focus {
    color: var(--sots-primary);
    background: var(--sots-primary-soft);
    outline: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-hide {
    color: var(--sots-muted);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-go:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-go:focus,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-hide:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-hide:focus {
    outline: none;
    filter: brightness(0.98);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-item-body {
    display: block;
    padding: 2px 6px 6px 20px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-campaign {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 0 0 6px;
    padding: 4px 6px;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-campaign-label {
    flex: 0 0 auto;
    font-size: 9px;
    font-weight: 650;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--sots-muted);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-campaign-status {
    flex: 1 1 auto;
    min-width: 0;
    font-size: var(--sots-control-font);
    color: var(--sots-text);
    line-height: 1.25;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-notes {
    flex: 1 1 auto;
    min-width: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-note-editor:empty::before {
    content: attr(data-placeholder);
    color: #687789;
    pointer-events: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-note-editor {
    white-space: pre-wrap;
    word-break: break-word;
    cursor: text;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-note-editor a {
    color: #174ea6;
    text-decoration: underline;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-images-wrap {
    display: grid;
    gap: 6px;
    margin-top: 6px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-images-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-image-tile {
    position: relative;
    width: 72px;
    height: 72px;
    flex: 0 0 72px;
    border: 1px solid var(--sots-border, #d5dbe3);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
    overflow: hidden;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-image-link {
    display: block;
    width: 100%;
    height: 100%;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-image-thumb {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-image-remove {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 18px;
    height: 18px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.72);
    color: #fff;
    font-size: 14px;
    line-height: 16px;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-images-actions {
    display: flex;
    align-items: center;
    gap: 6px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-image-add {
    height: var(--sots-control-h, 24px);
    padding: 0 var(--sots-control-pad-x, 8px);
    border: 1px solid var(--sots-border, #d5dbe3);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
    color: var(--sots-text, #1f2937);
    font-size: var(--sots-control-font, 12px);
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-image-add:hover {
    border-color: var(--sots-primary, #0b3d6e);
    color: var(--sots-primary, #0b3d6e);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-item-body[hidden] {
    display: none !important;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-item-link-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    min-width: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-item-link-row .operator-focus-task-link-open,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-item-link-row .operator-focus-task-link-hint {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 11px;
    color: var(--sots-primary);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-item-link-row .operator-focus-task-link-hint {
    color: var(--sots-muted);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-discussions {
    display: grid;
    gap: 4px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-resource-list,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-discussion-list {
    display: grid;
    gap: 4px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-resource-row,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-discussion-row {
    display: grid;
    grid-template-columns: minmax(72px, 0.9fr) minmax(0, 1.6fr) auto auto;
    gap: 4px;
    align-items: center;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-resource-label,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-resource-href,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-discussion-label,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-discussion-href {
    width: 100%;
    min-width: 0;
    height: var(--sots-control-h);
    padding: 0 6px;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: #fff;
    color: var(--sots-text);
    font-size: 11px;
    line-height: 1.2;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-resource-open,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-discussion-open {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--sots-control-h);
    padding: 0 8px;
    border: 1px solid var(--sots-primary);
    border-radius: var(--sots-control-radius);
    background: var(--sots-primary-soft);
    color: var(--sots-primary);
    font-size: 10px;
    font-weight: 650;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-resource-open-spacer,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-discussion-open-spacer {
    width: 42px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-resource-remove,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-discussion-remove {
    appearance: none;
    width: var(--sots-control-h);
    height: var(--sots-control-h);
    padding: 0;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    color: #94a3b8;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-add-resource,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-add-discussion {
    appearance: none;
    justify-self: start;
    margin-top: 2px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--sots-primary);
    font-size: 11px;
    font-weight: 650;
    line-height: 1.3;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-sub-label {
    color: var(--sots-muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-start-link-row {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-link-wrap {
    display: grid;
    gap: 8px;
    min-width: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-discussions {
    display: grid;
    gap: 4px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-link-hint,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-link-open {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--sots-primary);
    font-size: 10px;
    line-height: 1.3;
    text-decoration: underline;
    text-decoration-color: #cbd5e1;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-link-hint {
    color: var(--sots-muted);
    text-decoration: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-link-open:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-link-open:focus {
    color: var(--sots-primary-dark);
    outline: none;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-ref-open {
    flex: 0 0 auto;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-ref-img {
    display: block;
    width: 56px;
    height: auto;
    max-height: 72px;
    object-fit: cover;
    border: 1px solid var(--sots-border);
    border-radius: 3px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-link {
    appearance: none;
    flex: 0 0 auto;
    height: var(--sots-control-h);
    padding: 0 8px;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    color: var(--sots-muted);
    font-size: 10px;
    font-weight: 650;
    line-height: 1;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-link:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-link:focus {
    outline: none;
    filter: brightness(0.98);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-goal {
    width: 100%;
    min-height: 72px;
    margin: 0;
    padding: 6px 8px;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: #fff;
    color: var(--sots-text);
    font-family: inherit;
    font-size: 12px;
    line-height: 1.4;
    resize: vertical;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-goal:focus {
    border-color: var(--sots-primary);
    outline: none;
    box-shadow: 0 0 0 1px var(--sots-primary-soft);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-save {
    flex: 0 1 auto;
    min-width: 2.5em;
    max-width: 6.5em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--sots-muted);
    font-size: 8px;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    line-height: calc(var(--sots-control-h) - 2px);
    text-align: right;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-save.is-pending {
    color: #94a3b8;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-save.is-ok {
    color: #64748b;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-task-save.is-err {
    color: #b91c1c;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-add-task {
    display: block;
    width: 100%;
    min-height: var(--sots-control-h);
    margin-top: 2px;
    padding: 4px var(--sots-control-pad-x);
    border: 1px dashed var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    color: var(--sots-text);
    font-size: var(--sots-control-font);
    font-weight: 600;
    line-height: 1.35;
    text-align: left;
    box-sizing: border-box;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-add-task::placeholder {
    color: var(--sots-muted);
    font-weight: 600;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-add-task:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-add-task:focus {
    border-color: var(--sots-primary);
    background: var(--sots-primary-soft);
    outline: none;
}

body.sots-operator-page .ticket.is-focus-parked .ticket-card-shell {
    box-shadow: inset 3px 0 0 var(--sots-primary);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-park-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    margin-right: 2px;
    border-radius: 4px;
    background: var(--sots-primary-soft);
    color: var(--sots-primary);
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
}

body.sots-operator-page .operator-campaign-category-label {
    align-self: center;
    flex: 0 0 auto;
    width: 4.6rem;
    margin: 0;
}

body.sots-operator-page .operator-campaign-category-kicker-text {
    display: block;
    line-height: 1.05;
    text-align: left;
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
}

body.sots-operator-page .operator-campaign-category-kicker-text > span {
    display: inline;
}

body.sots-operator-page .operator-campaign-picker-cluster {
    display: inline-flex;
    align-items: stretch;
    flex: 0 1 auto;
    min-width: 0;
    max-width: 100%;
    border: 1px solid var(--sots-control-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    overflow: visible;
    box-shadow: 0 1px 0 rgba(16, 42, 67, 0.04);
    position: relative;
    z-index: 1;
}

body.sots-operator-page .operator-contact-categories-picker[open] {
    z-index: 30005;
}

body.sots-operator-page .operator-campaign-picker-cluster:has(.operator-contact-categories-picker[open]) {
    z-index: 30005;
}

body.sots-operator-page .operator-campaign-picker-cluster .operator-campaign-picker-select {
    flex: 1 1 auto;
    min-width: 8.5rem;
    border: 0;
    border-radius: 0;
    border-right: 1px solid var(--sots-control-border);
    background: transparent;
}

body.sots-operator-page .operator-campaign-picker-cluster .operator-campaign-work-btn,
body.sots-operator-page .operator-campaign-picker-cluster .operator-head-removal-brief-reopen {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--sots-control-h);
    min-height: var(--sots-control-h);
    min-width: 3.1rem;
    margin: 0;
    padding: 0 10px;
    border: 0;
    border-left: 1px solid var(--sots-control-border);
    border-radius: 0;
    font-size: var(--sots-control-font);
    font-weight: 650;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
}

body.sots-operator-page .operator-campaign-picker-cluster .operator-campaign-work-btn.is-start {
    background: var(--sots-primary);
    color: #fff;
}

body.sots-operator-page .operator-campaign-picker-cluster .operator-campaign-work-btn.is-start:hover,
body.sots-operator-page .operator-campaign-picker-cluster .operator-campaign-work-btn.is-start:focus {
    background: var(--sots-primary-dark);
}

body.sots-operator-page .operator-campaign-picker-cluster .operator-campaign-work-btn.is-stop {
    background: #f7fafc;
    color: var(--sots-text);
}

body.sots-operator-page .operator-campaign-picker-cluster .operator-campaign-work-btn.is-stop:hover,
body.sots-operator-page .operator-campaign-picker-cluster .operator-campaign-work-btn.is-stop:focus {
    background: #eef4fa;
    color: var(--sots-primary);
}

body.sots-operator-page .operator-campaign-picker-cluster .operator-head-removal-brief-reopen {
    background: var(--sots-primary-soft);
    color: var(--sots-primary);
}

body.sots-operator-page .operator-campaign-picker-cluster .operator-head-removal-brief-reopen:hover,
body.sots-operator-page .operator-campaign-picker-cluster .operator-head-removal-brief-reopen:focus {
    background: #dceaf7;
    color: var(--sots-primary-dark);
}

body.sots-operator-page .operator-campaign-picker-cluster .operator-campaign-work-btn:disabled {
    opacity: 0.5;
    cursor: default;
}

body.sots-operator-page .operator-campaign-picker-cluster .operator-head-removal-brief-reopen[hidden],
body.sots-operator-page .operator-campaign-picker-cluster .operator-campaign-work-btn[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-campaign-work-btn {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--sots-control-h);
    min-height: var(--sots-control-h);
    padding: 0 10px;
    border: 1px solid var(--sots-primary);
    border-radius: var(--sots-control-radius);
    background: var(--sots-primary);
    color: #fff;
    font-size: var(--sots-control-font);
    font-weight: 650;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
}

body.sots-operator-page .operator-campaign-work-btn:hover,
body.sots-operator-page .operator-campaign-work-btn:focus {
    background: var(--sots-primary-dark);
    border-color: var(--sots-primary-dark);
}

body.sots-operator-page .operator-campaign-work-btn:disabled {
    opacity: 0.55;
    cursor: default;
}

body.sots-operator-page .operator-campaign-work-btn.is-stop {
    background: var(--sots-surface);
    color: var(--sots-text);
    border-color: var(--sots-control-border);
}

body.sots-operator-page .operator-campaign-work-btn.is-stop:hover,
body.sots-operator-page .operator-campaign-work-btn.is-stop:focus {
    background: #f4f7fb;
    border-color: var(--sots-primary);
    color: var(--sots-primary);
}

body.sots-operator-page .operator-campaign-work-btn[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-active-campaign-panel {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 4px 8px 6px;
    border-bottom: 1px solid var(--sots-border, var(--op-border-soft, #e8edf5));
    background: var(--sots-surface, #fff);
}

body.sots-operator-page .operator-active-campaign-panel[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-active-campaign-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

body.sots-operator-page .operator-active-campaign-row .operator-list-context-select {
    flex: 1 1 12rem;
    min-width: min(100%, 10.5rem);
    max-width: 100%;
}

body.sots-operator-page .operator-active-campaign-title {
    font-size: var(--sots-control-font);
    font-weight: 650;
    color: var(--sots-text);
    line-height: 1.3;
}

body.sots-operator-page .operator-active-campaign-desc {
    margin: 0;
    font-size: 11px;
    font-weight: 500;
    color: var(--sots-muted);
    line-height: 1.35;
}

body.sots-operator-page .operator-active-campaign-categories {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    min-width: 0;
}

body.sots-operator-page .operator-active-campaign-cat-chip {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 0 6px;
    height: var(--sots-control-h);
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-primary-soft);
    color: var(--sots-primary);
    font-size: 10px;
    font-weight: 650;
    line-height: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    box-sizing: border-box;
}

body.sots-operator-page .operator-active-campaign-desc[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-active-campaign-category,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-category {
    margin-top: 2px;
    font-size: 10px;
    font-weight: 650;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--sots-primary);
    line-height: 1.35;
}

body.sots-operator-page .operator-active-campaign-category[hidden],
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-category[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-contact-categories-picker {
    position: relative;
    min-width: 0;
}

body.sots-operator-page .operator-contact-categories-summary {
    list-style: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    min-width: 88px;
    max-width: min(240px, 34vw);
}

body.sots-operator-page .operator-campaign-picker-cluster .operator-contact-categories-picker {
    display: flex;
    align-items: center;
    min-height: var(--sots-control-h);
}

body.sots-operator-page .operator-campaign-picker-cluster .operator-contact-categories-summary {
    border: 0;
    border-radius: 0;
    background: transparent;
    line-height: calc(var(--sots-control-h) - 2px);
}

body.sots-operator-page .operator-campaign-picker-cluster:has(.operator-contact-categories-picker:only-child) {
    border: 0;
    box-shadow: none;
    background: transparent;
}

body.sots-operator-page .operator-campaign-picker-cluster:has(.operator-contact-categories-picker:only-child) .operator-contact-categories-summary {
    border: 1px solid var(--sots-control-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    padding: 0 var(--sots-control-pad-x);
}

body.sots-operator-page .operator-list-stack .empty.sots-sidebar-loading {
    min-height: 48px;
    padding: 12px;
    color: transparent;
    user-select: none;
    pointer-events: none;
}

body.sots-operator-page .operator-list-stack .empty.sots-sidebar-loading-category {
    min-height: 32px;
    padding: 8px 12px;
    color: transparent;
    user-select: none;
    pointer-events: none;
}

body.sots-operator-page #smsOperatorLayout > .operator-sidebar {
    overflow-x: hidden;
}

body.sots-operator-page .operator-list-context:has(.operator-contact-categories-picker[open]) {
    z-index: 30005;
}

body.sots-operator-page .operator-contact-categories-summary::-webkit-details-marker {
    display: none;
}

body.sots-operator-page .operator-contact-categories-summary-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.sots-operator-page .operator-contact-categories-panel {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    z-index: 30006;
    min-width: min(320px, 92vw);
    max-height: min(360px, 52vh);
    overflow: auto;
    padding: 6px;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    box-shadow: 0 10px 28px rgba(16, 43, 72, 0.14);
}

body.sots-operator-page .operator-contact-categories-picker:not([open]) .operator-contact-categories-panel {
    display: none;
}

body.sots-operator-page .operator-contact-categories-option {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 4px 6px;
    border-radius: var(--sots-control-radius);
    font-size: var(--sots-control-font);
    line-height: 1.35;
    cursor: pointer;
}

body.sots-operator-page .operator-contact-categories-option:hover {
    background: var(--sots-primary-soft);
}

body.sots-operator-page .operator-contact-categories-option input {
    margin-top: 2px;
}

body.sots-operator-page .operator-campaign-pick,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-pick {
    margin: 0;
    padding: 6px 8px;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
}

body.sots-operator-page .operator-campaign-pick.is-selected,
body.sots-operator-page .operator-campaign-pick.is-focused,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-pick.is-selected,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-pick.is-focused {
    border-color: var(--sots-primary);
    box-shadow: 0 0 0 1px var(--sots-primary-soft);
}

body.sots-operator-page .operator-campaign-pick-title,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-pick-title {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
    font: inherit;
    font-weight: 650;
    color: var(--sots-text);
    cursor: pointer;
}

body.sots-operator-page .operator-campaign-pick-meta,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-pick-meta {
    display: block;
    margin-top: 2px;
    font-size: 10px;
    font-weight: 600;
    color: var(--sots-muted);
}

body.sots-operator-page .operator-campaign-pick-desc,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-pick-desc {
    margin: 6px 0 0;
    font-size: 11px;
    font-weight: 500;
    color: var(--sots-muted);
    line-height: 1.4;
}

body.sots-operator-page .operator-active-campaign-meta {
    margin-top: 4px;
    font-size: 10px;
    font-weight: 600;
    color: var(--sots-muted);
    line-height: 1.35;
}

body.sots-operator-page .operator-active-campaign-meta.is-working {
    color: var(--sots-primary);
}

body.sots-operator-page .operator-campaign-catalog {
    display: grid;
    gap: 6px;
    margin-top: 0;
    margin-bottom: 8px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-catalog .operator-campaign-fold {
    margin: 0;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold-select {
    display: inline-flex;
    align-items: center;
    height: var(--sots-control-h, 24px);
    margin-top: 6px;
    padding: 0 var(--sots-control-pad-x, 8px);
    border: 1px solid var(--sots-border, #d8dee6);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
    color: var(--sots-primary, #0b3d6e);
    font-size: var(--sots-control-font, 12px);
    font-weight: 650;
    font-family: inherit;
    cursor: pointer;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold-select:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold-select:focus {
    border-color: var(--sots-primary, #0b3d6e);
    background: var(--sots-primary-soft, #eef4fb);
    outline: none;
}

body.sots-operator-page .operator-campaign-fold,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold {
    margin: 0;
}

body.sots-operator-page .operator-campaign-fold.is-selected,
body.sots-operator-page .operator-campaign-fold.is-focused,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold.is-selected,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold.is-focused {
    border-color: var(--sots-primary);
    box-shadow: 0 0 0 1px var(--sots-primary-soft);
}

body.sots-operator-page .operator-campaign-fold-head,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold-head {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: var(--sots-control-h);
    padding: 4px 8px;
}

body.sots-operator-page .operator-campaign-fold-toggle,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold-toggle {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    margin: 0;
    padding: 0;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    color: var(--sots-text);
    font-size: 12px;
    line-height: 1;
    cursor: pointer;
}

body.sots-operator-page .operator-campaign-fold-toggle:hover,
body.sots-operator-page .operator-campaign-fold-toggle:focus,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold-toggle:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold-toggle:focus {
    border-color: var(--sots-primary);
    outline: none;
}

body.sots-operator-page .operator-campaign-fold-title,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold-title {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--sots-text);
    font-size: var(--sots-control-font);
    font-weight: 650;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
}

body.sots-operator-page .operator-campaign-fold-title:hover,
body.sots-operator-page .operator-campaign-fold-title:focus,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold-title:hover,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold-title:focus {
    color: var(--sots-primary);
    outline: none;
}

body.sots-operator-page .operator-campaign-fold-meta,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold-meta {
    flex: 0 0 auto;
    font-size: 10px;
    font-weight: 650;
    color: var(--sots-primary);
    line-height: 1.2;
    white-space: nowrap;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold-body {
    padding-top: 2px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-shared-tools {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 8px;
    padding-top: 6px;
    border-top: 1px solid var(--sots-border, #d5dbe3);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold-tools-mount:empty {
    display: none;
}

body.sots-operator-page .operator-campaign-fold-body,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold-body {
    padding: 0 8px 8px 36px;
}

body.sots-operator-page .operator-campaign-fold-desc,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-campaign-fold-desc {
    margin: 0;
    font-size: 11px;
    font-weight: 500;
    color: var(--sots-muted);
    line-height: 1.35;
}

body.sots-operator-page .operator-campaign-catalog-empty {
    font-size: 11px;
    color: var(--sots-muted);
}

body.sots-operator-page .operator-campaign-card {
    display: grid;
    gap: 2px;
    width: 100%;
    margin: 0;
    padding: 8px;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    text-align: left;
    cursor: pointer;
}

body.sots-operator-page .operator-campaign-card:hover,
body.sots-operator-page .operator-campaign-card:focus {
    border-color: var(--sots-primary);
    outline: none;
}

body.sots-operator-page .operator-campaign-card.is-selected {
    border-color: var(--sots-primary);
    box-shadow: 0 0 0 1px var(--sots-primary-soft);
}

body.sots-operator-page .operator-campaign-card.is-started {
    background: #f4f8fc;
}

body.sots-operator-page .operator-campaign-card.is-focused {
    border-color: var(--sots-primary);
    background: var(--sots-primary-soft);
    box-shadow: 0 0 0 1px rgba(11, 61, 110, 0.12);
}

body.sots-operator-page .operator-campaign-card-title {
    font-size: var(--sots-control-font);
    font-weight: 650;
    color: var(--sots-text);
    line-height: 1.3;
}

body.sots-operator-page .operator-campaign-card-desc {
    font-size: 11px;
    font-weight: 500;
    color: var(--sots-muted);
    line-height: 1.35;
}

body.sots-operator-page .operator-campaign-card-meta {
    font-size: 10px;
    font-weight: 650;
    color: var(--sots-primary);
    line-height: 1.3;
}

body.sots-operator-page .operator-campaign-focused-empty {
    margin: 0;
    font-size: 11px;
    color: var(--sots-muted);
    line-height: 1.35;
}

body.sots-operator-page .operator-campaign-focused-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
}

body.sots-operator-page .operator-campaign-work-status {
    flex: 0 1 auto;
    min-width: 0;
    font-size: 10px;
    font-weight: 600;
    color: var(--sots-muted);
    line-height: 1.35;
}

body.sots-operator-page .operator-thread-pane.has-head-removal-brief {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

body.sots-operator-page .operator-head-removal-brief {
    flex: 0 1 auto;
    min-height: 0;
    max-height: min(52vh, 420px);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    box-sizing: border-box;
}

body.sots-operator-page .operator-head-removal-brief[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-head-removal-brief .murano-decision-panel {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

body.sots-operator-page .operator-head-removal-brief-block {
    margin: 0;
    padding: 10px 0 0;
    border-top: 1px solid var(--op-border-soft, #e8edf5);
}

body.sots-operator-page .operator-head-removal-brief-label {
    display: block;
    margin: 0 0 6px;
    font-size: 11px;
    font-weight: 650;
    color: var(--sots-text);
    line-height: 1.3;
}

body.sots-operator-page .operator-head-removal-brief-field {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    min-height: 5.5rem;
    padding: 8px 10px;
    border: 1px solid var(--sots-control-border);
    border-radius: var(--sots-control-radius);
    font: inherit;
    font-size: 13px;
    line-height: 1.45;
    resize: vertical;
    background: var(--sots-surface);
}

body.sots-operator-page .operator-head-removal-brief-notes {
    min-height: 4.5rem;
}

body.sots-operator-page .operator-head-removal-brief-meta {
    display: block;
    margin-top: 4px;
    font-size: 10px;
    font-weight: 500;
    color: var(--sots-muted);
    line-height: 1.3;
}

body.sots-operator-page .operator-head-removal-brief-meta.is-ok {
    color: #0f6b3c;
}

body.sots-operator-page .operator-head-removal-brief-meta.is-err {
    color: #9b1c1c;
}

body.sots-operator-page .operator-thread-pane.has-head-removal-brief .operator-head-removal-brief {
    margin: 8px 10px 0;
}

body.sots-operator-page .operator-thread-pane.has-head-removal-brief .operator-messages-shell {
    flex: 1 1 auto;
    min-height: 0;
}

body.sots-operator-page .operator-dating-list-link[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-dating-list-link {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: var(--sots-control-h);
    min-height: var(--sots-control-h);
    padding: 0 10px;
    border: 1px solid var(--sots-control-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    color: var(--sots-primary);
    font-size: var(--sots-control-font);
    font-weight: 650;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
}

body.sots-operator-page .operator-dating-list-link:hover,
body.sots-operator-page .operator-dating-list-link:focus {
    border-color: var(--sots-primary);
    background: var(--sots-primary-soft);
}

body.sots-operator-page .operator-list-context-lanes,
body.sots-operator-page .operator-list-context-main,
body.sots-operator-page .operator-list-context-label,
body.sots-operator-page .operator-list-context-switch,
body.sots-operator-page .operator-list-context-chevron,
body.sots-operator-page .operator-list-context-menu,
body.sots-operator-page .operator-list-context-item {
    display: none;
}

body.sots-operator-page .search-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-bottom: 1px solid var(--op-border-soft, #e8edf5);
    background: transparent;
}

body.sots-operator-page .search-wrap input {
    flex: 1 1 140px;
    min-width: 0;
    width: auto;
    border: 1px solid var(--sots-control-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    min-height: var(--sots-control-h);
    height: var(--sots-control-h);
    padding: 0 var(--sots-control-pad-x);
    font-size: var(--sots-field-font);
    color: var(--sots-text);
    box-shadow: none;
}

body.sots-operator-page .search-wrap input:focus {
    outline: none;
    border-color: var(--sots-primary);
    box-shadow: 0 0 0 2px rgba(32, 76, 130, 0.12);
}

body.sots-operator-page .operator-google-menu {
    position: relative;
    flex: 0 0 auto;
}

body.sots-operator-page .operator-google-menu-panel {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 46;
    display: flex;
    flex-direction: column;
    min-width: 168px;
    padding: 6px;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-radius-sm);
    background: var(--sots-surface);
    box-shadow: var(--sots-shadow-soft);
}

body.sots-operator-page .operator-google-menu-panel[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-google-menu-panel button {
    appearance: none;
    display: block;
    width: 100%;
    margin: 0;
    padding: 8px 10px;
    border: 0;
    border-radius: var(--sots-control-radius);
    background: transparent;
    color: var(--sots-primary);
    font-size: var(--sots-control-font);
    font-weight: 650;
    text-align: left;
    cursor: pointer;
}

body.sots-operator-page .operator-google-menu-panel button:hover {
    background: var(--sots-primary-soft);
}

body.sots-operator-page .operator-google-menu-panel button[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-google-menu-panel a {
    display: block;
    width: 100%;
    margin: 0;
    padding: 8px 10px;
    border: 0;
    border-radius: var(--sots-control-radius);
    background: transparent;
    color: var(--sots-primary);
    font-size: var(--sots-control-font);
    font-weight: 650;
    text-align: left;
    text-decoration: none;
    box-sizing: border-box;
}

body.sots-operator-page .operator-google-menu-panel a:hover,
body.sots-operator-page .operator-google-menu-panel a:focus-visible {
    background: var(--sots-primary-soft);
}

body.sots-operator-page .operator-contact-categories-panel-footer {
    margin-top: 4px;
    padding-top: 6px;
    border-top: 1px solid var(--sots-border, #d8dee6);
}

body.sots-operator-page .operator-google-sync-status,
body.sots-operator-page .operator-list-dialer-button,
body.sots-operator-page .operator-list-drafts-button {
    appearance: none;
    flex: 0 0 auto;
    margin: 0;
    padding: 0 var(--sots-control-pad-x);
    min-height: var(--sots-control-h);
    height: var(--sots-control-h);
    max-height: var(--sots-control-h);
    border: 1px solid var(--sots-control-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    color: var(--sots-primary);
    font-size: var(--sots-control-font);
    font-weight: 650;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
}

body.sots-operator-page .operator-list-dialer-button:hover,
body.sots-operator-page .operator-list-drafts-button:hover,
body.sots-operator-page .operator-google-sync-status:hover,
body.sots-operator-page .operator-google-sync-status[aria-expanded="true"] {
    border-color: var(--sots-primary);
    background: var(--sots-primary-soft);
    color: var(--sots-primary);
}

body.sots-operator-page .operator-list-dialer-button[hidden],
body.sots-operator-page .operator-list-drafts-button[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-google-sync-status.is-syncing {
    border-color: rgba(11, 61, 110, 0.28);
    background: #eef5ff;
    color: #0b3d6e;
}

body.sots-operator-page .ticket {
    padding: 0;
    border-bottom: 1px solid var(--op-border-soft, #e8edf5);
    background: transparent;
    transition: background 100ms ease;
}

body.sots-operator-page .ticket:hover {
    background: #f5f8fc;
}

body.sots-operator-page .ticket.active {
    background: var(--sots-primary-soft, #eef4fb);
    box-shadow: inset 5px 0 0 var(--sots-primary, #0b3d6e);
    outline: 2px solid rgba(11, 61, 110, 0.28);
    outline-offset: -2px;
    position: relative;
    z-index: 1;
}

body.sots-operator-page .ticket.active .ticket-card-shell {
    box-shadow: none;
}

body.sots-operator-page .ticket.active .person-name-text {
    color: var(--sots-primary, #0b3d6e);
    font-weight: 800;
}

body.sots-operator-page .ticket.active .person-avatar {
    background: var(--sots-primary, #0b3d6e);
    color: #ffffff;
}

body.sots-operator-page .operator-layout[hidden],
body.sots-operator-page #smsOperatorLayout[hidden],
body.sots-operator-page #commWorkspaceLayout[hidden],
body.sots-operator-page .cw-layout[hidden] {
    display: none !important;
    flex: 0 0 0 !important;
    width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

body.sots-operator-page .ticket-card-shell.person-row {
    --person-trail: 6.25rem;
    --person-meta-line-height: 1.32;
    --person-meta-row-gap: 3px;
    --person-meta-block-gap: 5px;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    gap: 4px 6px;
    align-items: start;
    padding: 4px 6px;
    position: relative;
    min-height: 0;
}

body.sots-operator-page .ticket.is-expanded .person-body {
    display: flex;
    flex-direction: column;
    gap: var(--person-meta-block-gap);
}

body.sots-operator-page .person-row-trailing {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    justify-self: end;
}

body.sots-operator-page .unread-badge-spacer {
    display: inline-block;
    width: 0;
    height: 0;
}

body.sots-operator-page .person-avatar {
    width: 28px;
    height: 28px;
    margin-top: 1px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: start;
    background: var(--sots-border, #e2e8f0);
    color: var(--sots-muted, #5b6775);
    font-size: 10px;
    font-weight: 750;
    letter-spacing: -0.02em;
}

body.sots-operator-page .ticket[data-gender="lf"]:not(.active) .ticket-card-shell,
body.sots-operator-page .ticket[data-gender="f"]:not(.active) .ticket-card-shell {
    box-shadow: inset 3px 0 0 rgba(166, 118, 132, 0.62);
}

body.sots-redact-sensitive.sots-operator-page .ticket[data-gender="lf"]:not(.active) .ticket-card-shell,
body.sots-redact-sensitive.sots-operator-page .ticket[data-gender="f"]:not(.active) .ticket-card-shell,
html.sots-redact-sensitive body.sots-operator-page .ticket[data-gender="lf"]:not(.active) .ticket-card-shell,
html.sots-redact-sensitive body.sots-operator-page .ticket[data-gender="f"]:not(.active) .ticket-card-shell {
    box-shadow: none;
}

/* List rows default expanded; collapse only via row chevron (Mine/Simulator stay compact). */
body.sots-operator-page .ticket:not(.is-expanded) .person-endpoints,
body.sots-operator-page .ticket:not(.is-expanded) .person-owner-details,
body.sots-operator-page .ticket:not(.is-expanded) .person-owner-line,
body.sots-operator-page .ticket:not(.is-expanded) .person-source,
body.sots-operator-page .ticket:not(.is-expanded) .person-actions-row,
body.sots-operator-page .ticket:not(.is-expanded) .person-preview-row {
    display: none !important;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-contact-methods {
    display: flex !important;
    flex-direction: column;
    margin-top: 1px;
    gap: 2px;
    padding-right: 4px;
    box-sizing: border-box;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-last-use {
    display: none !important;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-last-use-line:has(.person-last-use-empty) {
    display: none;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-last-use:not(:has(.person-last-use-line:not(:has(.person-last-use-empty)))) {
    display: none !important;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-last-use-line {
    min-height: 0;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-last-use + .person-contact-methods {
    margin-top: 0;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-body:has(.person-reach-block) {
    gap: 0;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .ticket:not(.is-expanded) .person-body:has(.person-reach-block) {
    gap: 0;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .ticket .ticket-card-shell.person-row {
    padding-bottom: 3px;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .ticket:not(.is-expanded) .person-reach-block.is-head-removal-note-only + .person-contact-methods,
body.sots-operator-page.sots-opcon-head-removal-note-only .ticket:not(.is-expanded) .person-reach-block.is-head-removal-note-only + .person-category-row + .person-contact-methods,
body.sots-operator-page.sots-opcon-head-removal-note-only .ticket:not(.is-expanded) .person-opcon-category-reach-band + .person-contact-methods {
    margin-top: 0;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-opcon-category-reach-band {
    margin-top: 6px;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-opcon-category-reach-top {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 2px;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-opcon-category-reach-top .person-category-row {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-opcon-category-reach-top .person-reach-disposition-head {
    flex: 0 0 auto;
    margin: 0;
    width: auto;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-opcon-category-reach-band > .person-reach-block.is-head-removal-note-only {
    width: 100%;
    max-width: 100%;
    margin: 0;
    box-sizing: border-box;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-opcon-category-reach-band > .person-reach-block.is-head-removal-note-only .person-reach-disposition-row,
body.sots-operator-page.sots-opcon-head-removal-note-only .person-opcon-category-reach-band > .person-reach-block.is-head-removal-note-only .person-reach-disposition {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-opcon-category-reach-band ~ .person-contact-methods,
body.sots-operator-page.sots-opcon-head-removal-note-only .ticket:not(.is-expanded) .person-opcon-category-reach-band ~ .person-contact-methods {
    margin-top: 4px !important;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-reach-disposition-head {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin: 0 0 2px;
    min-height: 0;
    width: 100%;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-reach-disposition-head .person-reach-autosave {
    flex: 1 1 auto;
    min-width: 0;
    text-align: right;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-reach-disposition-foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 2px;
}

body.sots-operator-page .person-contact-trestle-label {
    flex: 0 1 auto;
    min-width: min-content;
    max-width: 100%;
    flex-shrink: 0;
    user-select: text;
    cursor: text;
    white-space: normal;
    word-break: break-word;
    line-height: 1.25;
    color: var(--sots-muted, #5a6b7d);
}

body.sots-operator-page .person-contact-label-rename-btn {
    flex: 0 0 auto;
    padding: 0 4px;
    border: 0;
    background: transparent;
    font: inherit;
    font-size: 10px;
    font-weight: 650;
    color: #687789;
    cursor: pointer;
}

body.sots-operator-page .person-contact-label-rename-btn:hover,
body.sots-operator-page .person-contact-label-rename-btn:focus-visible {
    color: #174ea6;
    text-decoration: underline;
    outline: none;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-top + .person-category-row,
body.sots-operator-page.sots-opcon-head-removal-note-only .person-last-activity-block + .person-category-row {
    margin-top: 6px;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-category-row {
    display: flex;
    margin: 0;
    min-height: 0;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-category-row + .person-reach-block.is-head-removal-note-only {
    margin-top: 2px;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .ticket:not(.is-expanded) .person-reach-block.is-head-removal-note-only {
    margin-top: 2px;
    margin-bottom: 0;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .ticket:not(.is-expanded) .person-reach-block.is-head-removal-note-only ~ .person-contact-methods {
    margin-top: 4px !important;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .ticket:not(.is-expanded) .person-last-use {
    margin-top: 0;
    padding-right: 4px;
    box-sizing: border-box;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .ticket:not(.is-expanded) .person-last-use + .person-contact-methods {
    margin-top: 0;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-reach-block.is-disposition-only,
body.sots-operator-page.sots-opcon-head-removal-note-only .ticket:not(.is-expanded) .person-reach-block.is-head-removal-note-only {
    display: block;
}

body.sots-operator-page .ticket:not(.is-expanded) .ticket-card-shell.person-row:has(.person-reach-block) {
    --person-trail: 6.75rem;
}

body.sots-operator-page .ticket.is-opcon-list-pinned .ticket-card-shell.person-row {
    --person-trail: 7rem;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-top .person-time {
    max-width: calc(var(--person-trail, 7.25rem) - 2.75rem);
}

body.sots-operator-page .person-list-pin-badge {
    flex: 0 0 auto;
    margin-right: 4px;
    padding: 0 5px;
    border-radius: 999px;
    border: 1px solid rgba(11, 61, 110, 0.18);
    background: var(--sots-primary-soft, #eef4fb);
    color: var(--sots-primary, #0b3d6e);
    font-size: 9px;
    font-weight: 750;
    line-height: 16px;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    white-space: nowrap;
}

body.sots-operator-page .person-list-ruled-out-badge {
    flex: 0 0 auto;
    margin-right: 4px;
    padding: 0 5px;
    border-radius: 999px;
    border: 1px solid rgba(102, 119, 136, 0.35);
    background: #f3f5f7;
    color: var(--sots-muted, #667788);
    font-size: 9px;
    font-weight: 750;
    line-height: 16px;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    white-space: nowrap;
}

body.sots-operator-page .ticket.is-campaign-ruled-out .ticket-card-shell.person-row {
    opacity: 0.82;
}

body.sots-operator-page.sots-opcon-mechanic-campaign #operatorPersonRowMenuReach,
body.sots-operator-page.sots-opcon-mechanic-campaign #operatorPersonRowMenuPark,
body.sots-operator-page.sots-opcon-mechanic-campaign #operatorPersonRowMenuCampaignFold {
    display: none !important;
}

body.sots-operator-page .person-campaign-status-chip {
    flex: 0 0 auto;
    margin-right: 4px;
    padding: 0 5px;
    border-radius: 999px;
    border: 1px solid var(--sots-border, #d5dde6);
    background: var(--sots-surface, #fff);
    color: var(--sots-muted, #5a6775);
    font-size: 9px;
    font-weight: 750;
    line-height: 16px;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    white-space: nowrap;
}

body.sots-operator-page .person-campaign-status-chip.is-active {
    border-color: rgba(11, 61, 110, 0.22);
    background: var(--sots-primary-soft, #eef4fb);
    color: var(--sots-primary, #0b3d6e);
}

body.sots-operator-page .person-campaign-status-chip.is-pinned {
    border-color: rgba(11, 61, 110, 0.18);
    background: var(--sots-primary-soft, #eef4fb);
    color: var(--sots-primary, #0b3d6e);
}

body.sots-operator-page .person-campaign-status-chip.is-eliminated {
    border-color: rgba(102, 119, 136, 0.35);
    background: #f3f5f7;
    color: #5a6775;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-rename-wrap {
    display: grid;
    gap: 4px;
    margin: 0 0 8px;
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-rename-label {
    font-size: 10px;
    font-weight: 650;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--sots-muted, #5a6775);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-rename {
    width: 100%;
    box-sizing: border-box;
    height: var(--sots-control-h, 24px);
    padding: 0 var(--sots-control-pad-x, 8px);
    border: 1px solid var(--sots-border, #d5dde6);
    border-radius: var(--sots-control-radius, 6px);
    font-size: var(--sots-control-font, 12px);
    color: var(--sots-text, #1a2836);
    background: var(--sots-surface, #fff);
}

:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-rename-autosave {
    justify-self: end;
    font-size: 10px;
    color: var(--sots-muted, #5a6775);
    min-height: 14px;
}

body.sots-operator-page .ticket.is-opcon-list-pinned-mine .ticket-card-shell.person-row {
    box-shadow: inset 3px 0 0 rgba(11, 61, 110, 0.42);
}

body.sots-operator-page .ticket.is-opcon-list-pinned-simulator .ticket-card-shell.person-row {
    box-shadow: inset 3px 0 0 rgba(102, 119, 136, 0.5);
}

body.sots-operator-page .ticket.is-opcon-list-pinned-simulator:not(.is-expanded) .person-reach-block,
body.sots-operator-page .ticket.is-opcon-list-pinned-simulator:not(.is-expanded) .person-contact-methods,
body.sots-operator-page .ticket:is(.is-opcon-list-pinned-mine, .is-opcon-list-pinned-simulator):not(.is-expanded) .person-last-use {
    display: none !important;
}

body.sots-operator-page .ticket.is-opcon-list-pinned-mine:not(.is-expanded) .person-mine-misc-notes-block,
body.sots-operator-page .ticket.is-opcon-list-pinned-mine:not(.is-expanded) .person-reach-block.is-mine-card-disposition {
    display: block !important;
    margin-top: 4px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.sots-operator-page .ticket.is-opcon-list-pinned-mine:not(.is-expanded) .person-contact-methods {
    display: flex !important;
    flex-direction: column;
    margin-top: 2px;
}

body.sots-operator-page .ticket.is-opcon-list-pinned-mine:not(.is-expanded) .person-owner-details {
    display: flex !important;
    flex-direction: column;
    margin-top: 2px;
}

body.sots-operator-page .ticket:is(.is-opcon-list-pinned-mine, .is-opcon-list-pinned-simulator):not(.is-expanded) .ticket-card-shell.person-row {
    padding-bottom: 3px;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-reach-block {
    margin: 0;
    padding-right: 4px;
    box-sizing: border-box;
}

body.sots-operator-page .ticket:not(.is-expanded) .ticket-card-shell.person-row:has(.person-reach-block) .person-row-trailing {
    top: 4px;
    align-items: flex-start;
}

body.sots-operator-page .person-reach-row-compact {
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 4px;
    min-height: 20px;
    line-height: 1.15;
}

body.sots-operator-page .person-reach-disposition-row {
    display: block;
    margin: 0 0 6px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.sots-operator-page .person-reach-disposition-wrap {
    position: relative;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.sots-operator-page .person-reach-disposition-save-corner {
    position: absolute;
    top: 5px;
    right: 8px;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    pointer-events: none;
}

body.sots-operator-page .person-reach-disposition-save-corner .person-reach-disposition-save-link {
    pointer-events: auto;
    padding: 1px 0 1px 6px;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, #fff 28%);
}

body.sots-operator-page .person-reach-disposition-wrap .person-reach-disposition {
    padding-right: 3.1rem;
}

body.sots-operator-page .person-reach-disposition-foot.person-reach-disposition-autosave-only {
    min-height: 0;
    margin-top: 1px;
}

body.sots-operator-page .person-reach-disposition-foot.person-reach-disposition-autosave-only:has(.person-reach-autosave:empty) {
    display: none;
}

body.sots-operator-page .person-reach-disposition-row .person-reach-disposition {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 34px;
    padding: 6px 8px;
    border: 1px solid var(--sots-border, #d8dee6);
    border-radius: var(--sots-control-radius, 6px);
    background: #fff;
    font-size: 12px;
    line-height: 1.35;
    box-sizing: border-box;
    resize: vertical;
    overflow-y: hidden;
    overflow-anchor: none;
}

body.sots-operator-page .person-reach-block:not(.is-has-disposition) .person-reach-disposition {
    resize: none;
}

body.sots-operator-page .person-reach-block.is-has-disposition .person-reach-disposition {
    min-height: 34px;
}

body.sots-operator-page .ticket.is-disposition-editing .person-reach-block .person-reach-disposition {
    max-height: 200px;
    overflow-y: auto;
}

body.sots-operator-page .ticket.is-expanded:not(.is-disposition-editing) .person-reach-disposition,
body.sots-operator-page .ticket.is-disposition-editing .person-reach-disposition {
    max-height: calc(1.35em * 7 + 12px);
}

body.sots-operator-page .ticket:not(.is-expanded):not(.is-disposition-editing) .person-reach-disposition {
    max-height: 34px;
    overflow: hidden !important;
}

/* Full list cards: To/From, phones, emails, and notes stay visible without the expand chevron. */
body.sots-operator-page .ticket:not(.is-opcon-list-pinned-mine):not(.is-opcon-list-pinned-simulator) .person-last-activity-block,
body.sots-operator-page .ticket:not(.is-opcon-list-pinned-mine):not(.is-opcon-list-pinned-simulator) .person-reach-block,
body.sots-operator-page .ticket:not(.is-opcon-list-pinned-mine):not(.is-opcon-list-pinned-simulator) .person-contact-methods,
body.sots-operator-page .ticket:not(.is-opcon-list-pinned-mine):not(.is-opcon-list-pinned-simulator) .person-category-row,
body.sots-operator-page .ticket:not(.is-opcon-list-pinned-mine):not(.is-opcon-list-pinned-simulator) .person-opcon-category-reach-band {
    display: block !important;
}

body.sots-operator-page .ticket:not(.is-opcon-list-pinned-mine):not(.is-opcon-list-pinned-simulator) .person-contact-methods {
    display: flex !important;
    flex-direction: column;
}

body.sots-operator-page .ticket:not(.is-opcon-list-pinned-mine):not(.is-opcon-list-pinned-simulator):not(.is-expanded) .person-name-text {
    overflow: visible;
    display: block;
    -webkit-line-clamp: unset;
    line-clamp: unset;
    white-space: normal;
}

body.sots-operator-page .ticket .person-reach-block.is-disposition-only,
body.sots-operator-page .ticket .person-reach-block.is-head-removal-note-only,
body.sots-operator-page .ticket .person-reach-block.is-reach-done .person-reach-disposition-row {
    margin-left: 0;
    width: 100%;
    max-width: 100%;
    padding-right: 4px;
    box-sizing: border-box;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .ticket .person-reach-block.is-head-removal-note-only {
    margin-left: 0;
    width: 100%;
    max-width: 100%;
    padding-right: 4px;
    box-sizing: border-box;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .ticket:not(.is-expanded) .person-reach-block.is-head-removal-note-only {
    padding-right: 4px;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-reach-disposition-row {
    margin: 0;
    width: 100%;
    max-width: 100%;
}

body.sots-operator-page .person-reach-disposition-preview {
    flex: 1 1 100%;
    min-width: 0;
    font-size: 11px;
    line-height: 1.35;
    color: var(--sots-muted, #667788);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.sots-operator-page .person-reach-block.is-reach-done .person-reach-disposition-preview:not([hidden]) {
    display: block;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-reach-block.is-reach-done .person-reach-disposition-row {
    display: block;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-reach-block.is-reach-done .person-reach-disposition-row .person-reach-disposition {
    min-height: 32px;
    max-height: 48px;
}

body.sots-operator-page .person-reach-panel {
    max-height: min(60vh, 420px);
    overflow: auto;
}

body.sots-operator-page .operator-head-removal-eliminated-link {
    display: inline-flex;
    align-items: center;
    height: var(--sots-control-h, 24px);
    padding: 0 var(--sots-control-pad-x, 8px);
    border-radius: var(--sots-control-radius, 6px);
    border: 1px solid var(--sots-border, #d8dee6);
    background: var(--sots-surface, #fff);
    color: var(--sots-primary, #0b3d6e);
    font-size: var(--sots-control-font, 12px);
    font-weight: 650;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    font-family: inherit;
}

button.operator-head-removal-eliminated-link {
    appearance: none;
    -webkit-appearance: none;
}

body.sots-operator-page .operator-head-removal-eliminated-link:hover,
body.sots-operator-page .operator-head-removal-eliminated-link:focus {
    border-color: var(--sots-primary, #0b3d6e);
    background: var(--sots-primary-soft, #eef4fb);
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-reach-block.is-head-removal-note-only {
    box-sizing: border-box;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-reach-block.is-head-removal-note-only .person-reach-disposition-row,
body.sots-operator-page.sots-opcon-head-removal-note-only .person-reach-block.is-head-removal-note-only .person-reach-disposition {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-reach-block.is-head-removal-note-only .person-reach-disposition {
    padding: 5px 8px;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .ticket:not(.is-expanded) .person-reach-block.is-head-removal-note-only {
    display: block;
}

body.sots-operator-page .person-reach-disposition-foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    min-height: 16px;
    margin-top: 2px;
    width: 100%;
}

body.sots-operator-page .person-reach-disposition-foot .person-reach-autosave {
    flex: 1 1 auto;
    min-width: 0;
    text-align: right;
    color: var(--sots-muted, #667788);
    font-size: 11px;
    font-weight: 500;
}

body.sots-operator-page .person-reach-disposition-save-link {
    appearance: none;
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--sots-muted, #667788);
    font-size: 11px;
    font-weight: 500;
    line-height: 1.2;
    text-decoration: underline;
    cursor: pointer;
}

body.sots-operator-page .person-reach-disposition-save-link:hover,
body.sots-operator-page .person-reach-disposition-save-link:focus-visible {
    color: var(--sots-text, #1f2937);
}

body.sots-operator-page .person-reach-disposition-save {
    flex: 0 0 auto;
    height: var(--sots-control-h, 24px);
    padding: 0 var(--sots-control-pad-x, 8px);
    border: 1px solid var(--sots-border, #d8dee6);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
    color: var(--sots-primary, #0b3d6e);
    font-size: var(--sots-control-font, 12px);
    font-weight: 650;
    font-family: inherit;
    cursor: pointer;
}

body.sots-operator-page .person-reach-disposition-save:hover,
body.sots-operator-page .person-reach-disposition-save:focus-visible {
    border-color: var(--sots-primary, #0b3d6e);
    background: var(--sots-primary-soft, #eef4fb);
}

body.sots-operator-page .person-reach-disposition-foot .person-reach-autosave:empty {
    display: none;
}

body.sots-operator-page .operator-head-removal-eliminated-divider {
    margin: 8px 8px 4px;
    padding: 4px 0 2px;
    border-top: 1px solid var(--sots-border, #d8dee6);
    font-size: 10px;
    font-weight: 650;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--sots-muted, #667788);
}

body.sots-operator-page .operator-head-removal-eliminated-divider.is-highlight-pulse {
    color: var(--sots-primary, #0b3d6e);
    border-top-color: var(--sots-primary, #0b3d6e);
}

body.sots-operator-page.sots-opcon-head-removal-note-only .ticket.is-head-removal-eliminated .ticket-card-shell.person-row {
    box-shadow: inset 2px 0 0 rgba(102, 119, 136, 0.35);
}

body.sots-operator-page .person-reach-block.is-disposition-only {
    box-sizing: border-box;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-reach-block.is-disposition-only,
body.sots-operator-page.sots-opcon-head-removal-note-only .ticket:not(.is-expanded) .person-reach-block.is-head-removal-note-only {
    display: block;
}

body.sots-operator-page .operator-campaign-catalog[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-focus-campaign-head-tools,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-head-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    margin: 0;
    padding: 1px 4px;
    min-height: var(--sots-control-h, 24px);
    border: 1px solid var(--sots-border, #d5dbe3);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
}

body.sots-operator-page .operator-focus-campaign-head-tools[hidden],
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-head-tools[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-focus-campaign-hero,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-hero {
    margin: 0;
    padding: 2px 6px;
    border: 1px solid var(--sots-border, #d5dbe3);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
}

body.sots-operator-page .operator-focus-campaign-hero-title,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-hero-title {
    font-size: var(--sots-control-font, 12px);
    font-weight: 650;
    line-height: 1.3;
    color: var(--sots-text, #1a2330);
}

body.sots-operator-page .operator-focus-campaign-hero-desc,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-hero-desc {
    margin-top: 2px;
    font-size: 11px;
    line-height: 1.35;
    color: var(--sots-muted, #667788);
}

body.sots-operator-page .operator-focus-campaign-brief-fold[hidden],
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-brief-fold[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-focus-campaign-brief-fold,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-campaign-brief-fold {
    margin: 0;
}

body.sots-operator-page .operator-focus-campaign-brief-body .murano-decision-panel {
    margin: 0;
    padding: 6px 8px;
}

body.sots-operator-page .operator-head-removal-add-shop {
    display: inline-flex;
    align-items: center;
    height: var(--sots-control-h, 24px);
    padding: 0 var(--sots-control-pad-x, 8px);
    border-radius: var(--sots-control-radius, 6px);
    border: 1px solid var(--sots-primary, #0b3d6e);
    background: var(--sots-primary, #0b3d6e);
    color: #fff;
    font-size: var(--sots-control-font, 12px);
    font-weight: 650;
    cursor: pointer;
    white-space: nowrap;
}

body.sots-operator-page .operator-head-removal-add-shop:hover,
body.sots-operator-page .operator-head-removal-add-shop:focus {
    background: var(--sots-primary-dark, #1f446d);
    border-color: var(--sots-primary-dark, #1f446d);
}

body.sots-operator-page .person-reach-row-compact .person-reach-note {
    flex: 1 1 100%;
    min-width: 0;
    width: 100%;
    min-height: 20px;
    max-height: 160px;
    padding: 3px 6px;
    border: 1px solid #e3eaf2;
    border-radius: 4px;
    background: #f9fbfd;
    box-shadow: none;
    font-size: 11px;
    line-height: 1.35;
    resize: vertical;
    overflow: auto;
    box-sizing: border-box;
}

body.sots-operator-page .person-reach-row-compact .person-reach-note:focus {
    outline: none;
    border-color: #c9d7e6;
    background: #fff;
    box-shadow: none;
}

body.sots-operator-page .person-reach-row-compact .person-reach-back-wrap select {
    height: 20px;
    padding: 0 3px;
    font-size: 10px;
    border: 1px solid #e3eaf2;
    border-radius: 4px;
    background: #f9fbfd;
    box-shadow: none;
}

body.sots-operator-page .person-reach-row-compact .person-reach-back-wrap select:focus {
    outline: none;
    border-color: #c9d7e6;
    background: #fff;
    box-shadow: none;
}

body.sots-operator-page .person-reach-menu .person-reach-summary {
    font-weight: 600;
    font-size: 11px;
    line-height: 20px;
}

/* Address/email live on expanded card only (inside .person-contact-methods). */
body.sots-operator-page .person-place-contact,
body.sots-operator-page .conversation-contact-essentials {
    display: none !important;
}

body.sots-operator-page .conversation-contact-essentials[hidden] {
    display: none !important;
}

/* Expanded: contact methods only — hide list chrome that belongs in the thread or row menu. */
body.sots-operator-page .ticket.is-expanded .person-preview-row,
body.sots-operator-page .ticket.is-expanded .person-owner-line,
body.sots-operator-page .ticket.is-expanded .person-source,
body.sots-operator-page .ticket.is-expanded .person-actions-row {
    display: none !important;
}

/* Expanded: full-width body (trailing chips float top-right). */
body.sots-operator-page .ticket.is-expanded .ticket-card-shell.person-row {
    grid-template-columns: 28px minmax(0, 1fr);
    padding-top: 5px;
    padding-bottom: 6px;
}

body.sots-operator-page .ticket.is-expanded .person-row-trailing {
    position: absolute;
    top: 5px;
    right: 10px;
}

body.sots-operator-page .ticket.is-expanded .person-top {
    padding-right: var(--person-trail);
    box-sizing: border-box;
}

/* One horizontal line per contact method: number/email, label, call. */
body.sots-operator-page .person-contact-method {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0;
    min-height: 19px;
    line-height: var(--person-meta-line-height);
}

body.sots-operator-page .person-contact-method.person-contact-phone-row {
    flex-direction: column;
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 2px;
    min-height: 0;
}

body.sots-operator-page .person-contact-phone-primary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    min-width: 0;
    width: 100%;
}

body.sots-operator-page .person-contact-trestle-line {
    width: 100%;
    box-sizing: border-box;
    padding: 0 2px 4px 0;
}

body.sots-operator-page .person-contact-label-btn {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.sots-operator-page .person-contact-method-value,
body.sots-operator-page .person-contact-method .person-default-phone,
body.sots-operator-page .person-contact-method .person-contact-phone-dial {
    flex: 0 0 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.sots-operator-page .person-contact-method .person-contact-phone-dial {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--sots-primary, var(--op-accent));
    font: inherit;
    font-size: var(--person-meta-font-size, 11px);
    font-weight: 500;
    text-align: left;
    cursor: pointer;
}

body.sots-operator-page .person-contact-method .person-contact-phone-dial:hover,
body.sots-operator-page .person-contact-method .person-contact-phone-dial:focus-visible {
    text-decoration: underline;
    outline: none;
}

body.sots-operator-page .person-contact-method .person-last-use-call,
body.sots-operator-page .person-contact-method .person-contact-message {
    flex: 0 0 18px;
    margin: 0 0 0 4px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--sots-primary, var(--op-accent));
    cursor: pointer;
    line-height: 1;
}

body.sots-operator-page .person-contact-method .person-last-use-call svg,
body.sots-operator-page .person-contact-method .person-contact-message svg {
    display: block;
    width: 14px;
    height: 14px;
}

body.sots-operator-page .person-contact-email {
    flex: 0 1 auto;
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--sots-primary, var(--op-accent));
    font: inherit;
    font-size: var(--person-meta-font-size, 11px);
    font-weight: 500;
    text-align: left;
    cursor: pointer;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.sots-operator-page .person-contact-email:hover,
body.sots-operator-page .person-contact-method .person-contact-message:hover,
body.sots-operator-page .person-contact-method .person-last-use-call:hover,
body.sots-operator-page .person-contact-method .person-contact-phone-dial:hover {
    text-decoration: underline;
}

body.sots-operator-page .person-endpoint-sep {
    flex: 0 0 auto;
    white-space: pre;
    font-size: inherit;
    line-height: inherit;
}

body.sots-operator-page .ticket.is-expanded .person-contact-label-btn {
    max-width: none;
}

body.sots-operator-page .ticket.is-expanded .person-contact-method-value,
body.sots-operator-page .ticket.is-expanded .person-contact-method .person-default-phone {
    overflow: hidden;
    text-overflow: ellipsis;
}

body.sots-operator-page .ticket.is-expanded .person-last-use-line {
    flex-wrap: nowrap;
}

body.sots-operator-page .ticket.is-expanded .person-last-use-line {
    overflow: visible;
}

body.sots-operator-page .ticket:not(.is-expanded) .ticket-card-shell.person-row {
    align-items: flex-start;
    row-gap: 0;
    grid-template-columns: 28px minmax(0, 1fr);
}

/* Normal contacts always use the expanded card shell (Mine/Simulator stay compact). */
body.sots-operator-page .ticket:not(.is-opcon-list-pinned-mine):not(.is-opcon-list-pinned-simulator) .ticket-card-shell.person-row {
    grid-template-columns: 28px minmax(0, 1fr);
    padding-top: 5px;
    padding-bottom: 6px;
    align-items: start;
    row-gap: 0;
}

body.sots-operator-page .ticket:not(.is-opcon-list-pinned-mine):not(.is-opcon-list-pinned-simulator) .person-body {
    gap: var(--person-meta-block-gap, 5px);
}

body.sots-operator-page .ticket:not(.is-opcon-list-pinned-mine):not(.is-opcon-list-pinned-simulator) .person-row-trailing {
    position: absolute;
    top: 5px;
    right: 10px;
}

body.sots-operator-page .ticket:not(.is-opcon-list-pinned-mine):not(.is-opcon-list-pinned-simulator) .person-top {
    padding-right: var(--person-trail);
    box-sizing: border-box;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-body {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    min-width: 0;
    overflow: visible;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-top {
    min-width: 0;
    width: 100%;
    padding-right: var(--person-trail);
    box-sizing: border-box;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-row-trailing {
    position: absolute;
    top: 4px;
    right: 4px;
}

body.sots-operator-page .person-last-activity-block {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 6px 0 4px;
    padding-right: 4px;
    min-width: 0;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-top + .person-last-activity-block {
    margin-top: 7px;
}

body.sots-operator-page .person-last-activity-line {
    margin: 0;
    font-size: 11px;
    line-height: 1.35;
    color: var(--sots-muted, #667788);
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
}

body.sots-operator-page .person-last-activity-kind {
    margin: 0;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.35;
    color: var(--sots-text, #1a2a3a);
    letter-spacing: 0.01em;
}

body.sots-operator-page .person-last-activity-when {
    margin: 0;
    font-size: 11px;
    line-height: 1.35;
    color: var(--sots-muted, #667788);
}

body.sots-operator-page .person-last-activity-to-from {
    margin: 0;
    font-size: 11px;
    line-height: 1.35;
    color: var(--sots-muted, #667788);
    white-space: pre-line;
    word-break: break-word;
    overflow-wrap: anywhere;
}

body.sots-operator-page .person-last-activity-sub {
    font-size: 10px;
    opacity: 0.92;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-top .person-time[hidden] {
    display: none !important;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-reach-disposition-row .person-reach-disposition {
    min-height: 34px;
    max-height: 34px !important;
    height: 34px !important;
    overflow: hidden !important;
    resize: none !important;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-reach-block.is-disposition-only {
    display: block;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-reach-disposition-wrap {
    max-height: 34px;
    overflow: hidden;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-name {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    align-items: flex-start;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-name-text {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
    text-overflow: ellipsis;
}

body.sots-operator-page .person-name {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--op-ink, #102a43);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 4px;
}

body.sots-operator-page .person-name-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.sots-operator-page .person-phone-count {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 16px;
    padding: 0 5px;
    border: 1px solid #e3eaf2;
    border-radius: 4px;
    background: #f7fafc;
    color: #687789;
    font-size: 10px;
    font-weight: 650;
    line-height: 1;
    letter-spacing: 0;
    white-space: nowrap;
}

body.sots-operator-page .person-name-text.person-name-edit-target {
    cursor: text;
    border-radius: 2px;
}

body.sots-operator-page .person-name-text.person-name-edit-target:hover {
    background: rgba(47, 111, 237, 0.08);
}

body.sots-operator-page .person-identity-info {
    flex: 0 0 auto;
    appearance: none;
    margin: 0 0 0 6px;
    padding: 0;
    width: 16px;
    height: 16px;
    border: 1px solid #5f7488;
    border-radius: 50%;
    background: #eef4fb;
    color: #1f446d;
    font: 700 11px/16px Arial, Helvetica, sans-serif;
    text-align: center;
    cursor: pointer;
}

body.sots-operator-page .person-identity-info:hover,
body.sots-operator-page .person-identity-info[aria-expanded="true"] {
    border-color: #1f446d;
    background: #1f446d;
    color: #fff;
}

body.sots-operator-page .person-list-notes-icons {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 4px;
    vertical-align: middle;
}

body.sots-operator-page .person-list-notes-btn {
    flex: 0 0 auto;
    appearance: none;
    margin: 0;
    padding: 0;
    width: 16px;
    height: 16px;
    border: 1px solid #5f7488;
    border-radius: 50%;
    background: #eef4fb;
    color: #1f446d;
    font: 700 10px/16px Arial, Helvetica, sans-serif;
    text-align: center;
    cursor: pointer;
}

body.sots-operator-page .person-list-notes-btn.is-disposition-notes {
    border-color: #7a5c2e;
    background: #faf4e8;
    color: #6b4f1f;
}

body.sots-operator-page .person-list-notes-btn:hover,
body.sots-operator-page .person-list-notes-btn[aria-expanded="true"] {
    border-color: #1f446d;
    background: #1f446d;
    color: #fff;
}

body.sots-operator-page .person-list-notes-btn.is-disposition-notes:hover,
body.sots-operator-page .person-list-notes-btn.is-disposition-notes[aria-expanded="true"] {
    border-color: #6b4f1f;
    background: #6b4f1f;
    color: #fff;
}

body.sots-operator-page .person-list-notes-popover {
    display: none;
    position: fixed;
    z-index: 12050;
    width: min(360px, calc(100vw - 16px));
    max-height: min(50vh, 320px);
    padding: 10px 12px 8px;
    border-radius: 10px;
    border: 1px solid var(--sots-border, #d8dee6);
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 35, 60, 0.18);
    box-sizing: border-box;
}

body.sots-operator-page .person-list-notes-popover.is-open {
    display: block;
}

body.sots-operator-page .person-list-notes-popover-title {
    margin: 0 0 6px;
    font-size: 12px;
    font-weight: 750;
    color: var(--sots-primary, #0b3d6e);
}

body.sots-operator-page .person-list-notes-popover-body {
    max-height: min(38vh, 220px);
    overflow: auto;
    font-size: 12px;
    line-height: 1.4;
    white-space: pre-wrap;
    word-break: break-word;
    color: var(--op-ink, #102a43);
}

body.sots-operator-page .person-mine-notes-label {
    margin: 0;
    font-size: 11px;
    font-weight: 700;
    color: var(--op-muted, #5f7488);
}

body.sots-operator-page .person-mine-notes-head {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 6px 10px;
    margin: 0 0 3px;
    min-height: 16px;
}

body.sots-operator-page .person-mine-notes-head .person-mine-notes-label {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
}

body.sots-operator-page .person-mine-notes-head .person-mine-misc-autosave,
body.sots-operator-page .person-mine-notes-head .person-reach-autosave {
    flex: 0 1 auto;
    font-size: 10px;
    color: var(--sots-muted, #5a6775);
    text-align: right;
}

body.sots-operator-page .person-reach-disposition-head {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    min-height: 16px;
    margin-bottom: 2px;
    width: 100%;
}

body.sots-operator-page .person-reach-disposition-head .person-reach-autosave {
    flex: 1 1 auto;
    min-width: 0;
    text-align: right;
    color: var(--sots-muted, #667788);
    font-size: 11px;
    font-weight: 500;
}

body.sots-operator-page .person-reach-disposition-head .person-reach-autosave:empty {
    display: none;
}

body.sots-operator-page .person-reach-disposition-row.is-mine-disposition-only .person-reach-disposition {
    width: 100%;
}

body.sots-operator-page .person-mine-misc-notes-block {
    margin: 4px 0 6px;
    padding-right: 4px;
    box-sizing: border-box;
}

body.sots-operator-page .ticket.is-opcon-list-pinned-mine .person-mine-misc-notes-block.is-misc-collapsed {
    margin-bottom: 2px;
}

body.sots-operator-page .ticket.is-opcon-list-pinned-mine .person-mine-misc-notes-block.is-misc-collapsed + .person-reach-block.is-mine-card-disposition {
    margin-top: 0;
    padding-top: 0;
}

body.sots-operator-page .ticket.is-opcon-list-pinned-mine .person-mine-misc-notes-block.is-misc-collapsed + .person-reach-block.is-mine-card-disposition::before {
    content: none;
    display: none;
}

body.sots-operator-page .person-mine-misc-toggle {
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 11px;
    font-weight: 700;
    color: var(--op-muted, #5f7488);
    cursor: pointer;
    text-align: left;
}

body.sots-operator-page .person-mine-misc-toggle:hover,
body.sots-operator-page .person-mine-misc-toggle:focus-visible {
    color: var(--sots-primary, #0b3d6e);
    text-decoration: underline;
    outline: none;
}

body.sots-operator-page .person-mine-misc-preview {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 10px;
    line-height: 1.3;
    color: var(--sots-muted, #5a6775);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.sots-operator-page .person-mine-misc-preview.is-empty {
    font-style: italic;
}

body.sots-operator-page .person-mine-misc-notes-block.is-misc-collapsed .person-mine-misc-notes,
body.sots-operator-page .person-mine-misc-notes-block.is-misc-collapsed [data-mine-misc-save-now] {
    display: none !important;
}

body.sots-operator-page .person-mine-misc-notes-block:not(.is-misc-collapsed) .person-mine-misc-preview {
    display: none !important;
}

body.sots-operator-page .person-category-row + .person-reach-block.is-disposition-only {
    margin-top: 0;
}

body.sots-operator-page .person-category-row:has(+ .person-reach-block.is-disposition-only) {
    margin-bottom: 0;
}

body.sots-operator-page .person-category-row + .person-reach-block.is-has-reach-menu {
    margin-top: 2px;
}

body.sots-operator-page .person-reach-block.is-has-reach-menu .person-reach-row-compact {
    margin-bottom: 2px;
}

body.sots-operator-page .person-mine-misc-notes {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 72px;
    max-height: calc(1.35em * 12 + 12px);
    padding: 6px 8px;
    border: 1px solid var(--sots-border, #d8dee6);
    border-radius: var(--sots-control-radius, 6px);
    background: #fff;
    font-size: 12px;
    line-height: 1.35;
    box-sizing: border-box;
    resize: vertical;
    overflow-y: auto;
}

body.sots-operator-page .ticket.is-disposition-editing .person-mine-misc-notes {
    max-height: 200px;
}

body.sots-operator-page .person-mine-notes-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 2px;
    min-height: 16px;
}

body.sots-operator-page .person-mine-misc-autosave {
    font-size: 10px;
    color: var(--sots-muted, #5a6775);
}

body.sots-operator-page .person-mine-misc-autosave.is-err {
    color: #b42318;
}

body.sots-operator-page .ticket.is-opcon-list-pinned-mine .person-reach-block.is-mine-card-disposition .person-mine-notes-label {
    margin-bottom: 3px;
}

body.sots-operator-page .person-contact-method .person-contact-identity-info {
    flex: 0 0 auto;
    margin: 0 0 0 4px;
}

body.sots-operator-page .person-name-inline-input {
    box-sizing: border-box;
    width: min(100%, 220px);
    margin: 0;
    padding: 1px 4px;
    border: 1px solid #2f6fed;
    border-radius: 3px;
    background: #fff;
    color: inherit;
    font: inherit;
    font-weight: 600;
    line-height: 1.3;
}

body.sots-operator-page .conversation-title .person-name-text.person-name-edit-target {
    display: inline;
    max-width: 100%;
}

body.sots-operator-page .conversation-title .person-name-inline-input {
    width: min(100%, 280px);
    font: inherit;
    font-weight: 700;
}

body.sots-operator-page .person-default-phone {
    /* Inline so whitespace beside the number opens the SMS thread, not this control. */
    display: inline-block;
    width: fit-content;
    max-width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    font: inherit;
    letter-spacing: 0;
    text-align: left;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
}

body.sots-operator-page .person-default-phone:hover {
    color: #1f446d;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body.sots-operator-page .person-default-phone:focus-visible {
    outline: 2px solid rgba(47, 111, 237, 0.45);
    outline-offset: 1px;
    border-radius: 2px;
}

body.sots-operator-page .ticket.is-dial-confirm {
    background: #eef5ff;
    box-shadow: inset 3px 0 0 #2f6fed;
}

body.sots-operator-page .operator-dial-list-notice {
    margin: 0 0 6px;
    padding: 6px 8px;
    border: 1px solid #c5d7f2;
    border-radius: 4px;
    background: #eef5ff;
    color: #1f446d;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.35;
}

body.sots-operator-page .operator-dial-list-notice.is-error {
    border-color: #e2b6b6;
    background: #fff1f1;
    color: #8a2b2b;
}

body.sots-operator-page .operator-dial-list-notice[hidden] {
    display: none !important;
}

body.sots-operator-page .person-identity-card-layer {
    position: fixed;
    inset: 0;
    z-index: 40000;
    pointer-events: none;
    overflow: hidden;
    background: transparent;
}

body.sots-operator-page .person-identity-card-popover {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    isolation: isolate;
    pointer-events: none;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px 14px 12px;
    border: 1px solid var(--sots-border, #d5dde5);
    border-radius: 8px;
    background: #fff;
    color: var(--sots-text, #102a43);
    box-shadow: 0 12px 32px rgba(16, 42, 67, 0.18);
    visibility: hidden;
    opacity: 0;
}

body.sots-operator-page .person-identity-card-popover.is-open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}

body.sots-operator-page .person-identity-card-body {
    margin: 0;
    padding: 0;
    overflow: visible;
    word-break: break-word;
    font: 12px/1.5 Arial, Helvetica, sans-serif;
    color: var(--sots-text, #102a43);
    background: #fff;
}

body.sots-operator-page .person-identity-card-fallback {
    margin: 0;
    white-space: pre-wrap;
    font: 11px/1.45 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    color: var(--sots-text, #102a43);
}

body.sots-operator-page .person-identity-card-panel {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

body.sots-operator-page .person-identity-section {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

body.sots-operator-page .person-identity-section + .person-identity-section {
    padding-top: 10px;
    border-top: 1px solid var(--sots-border, #d5dde5);
}

body.sots-operator-page .person-identity-section-title {
    font: 700 11px/1.2 Arial, Helvetica, sans-serif;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--sots-muted, #5f7488);
}

body.sots-operator-page .person-identity-name-row,
body.sots-operator-page .person-identity-fact,
body.sots-operator-page .person-identity-lookup-row {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

body.sots-operator-page .person-identity-name-row {
    align-items: center;
}

body.sots-operator-page .person-identity-k {
    flex: 0 0 auto;
    min-width: 118px;
    max-width: 42%;
    font-weight: 600;
    color: var(--sots-muted, #5f7488);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
}

body.sots-operator-page .person-identity-lookup-label {
    flex: 1 1 auto;
    min-width: 0;
}

body.sots-operator-page .person-identity-v {
    flex: 1 1 auto;
    min-width: 0;
    color: var(--sots-text, #102a43);
}

body.sots-operator-page .person-identity-lookup-block + .person-identity-lookup-block {
    margin-top: 6px;
}

body.sots-operator-page .person-identity-lookup-meta {
    margin: 0 0 4px 126px;
}

body.sots-operator-page .person-identity-meta {
    margin: 0 0 2px 126px;
    font-size: 10px;
    line-height: 1.35;
    color: var(--sots-muted, #5f7488);
}

body.sots-operator-page .person-identity-empty {
    margin: 0;
    font-size: 11px;
    color: var(--sots-muted, #5f7488);
}

body.sots-operator-page .person-identity-google-btn {
    flex: 0 0 auto;
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin: 0;
    padding: 0;
    border: 1px solid var(--sots-border, #d5dde5);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #f4f7fa);
    color: var(--sots-primary, #1f446d);
    cursor: pointer;
}

body.sots-operator-page .person-identity-google-btn svg {
    width: 14px;
    height: 14px;
    display: block;
}

body.sots-operator-page .person-identity-google-btn:hover,
body.sots-operator-page .person-identity-google-btn:focus-visible {
    background: #fff;
    border-color: var(--sots-primary, #1f446d);
    outline: none;
}

body.sots-operator-page .person-identity-lookup-phones {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 0 0 6px;
}

body.sots-operator-page .person-identity-lookup-phone-chip {
    appearance: none;
    margin: 0;
    padding: 0 6px;
    min-height: var(--sots-control-h, 24px);
    border: 1px solid var(--sots-border, #d5dde5);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #f7f9fb);
    color: var(--sots-text, #1a2b3c);
    font: 500 var(--sots-control-font, 12px)/1.2 Arial, Helvetica, sans-serif;
    cursor: pointer;
    text-align: left;
}

body.sots-operator-page .person-identity-lookup-phone-chip:hover,
body.sots-operator-page .person-identity-lookup-phone-chip:focus-visible {
    border-color: var(--sots-primary, #1f446d);
    outline: none;
}

body.sots-operator-page .person-identity-lookup-phone-chip.is-active {
    border-color: var(--sots-primary, #1f446d);
    background: var(--sots-primary-soft, #e8f0f8);
}

body.sots-operator-page .person-identity-lookup-phone-label {
    color: var(--sots-muted, #5f7488);
    font-weight: 400;
}

body.sots-operator-page .person-identity-lookup-input-wrap {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 0 0 4px;
}

body.sots-operator-page .person-identity-lookup-input {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: 4px 8px;
    min-height: var(--sots-control-h, 24px);
    border: 1px solid var(--sots-border, #d5dde5);
    border-radius: var(--sots-control-radius, 6px);
    background: #fff;
    color: var(--sots-text, #1a2b3c);
    font: 400 var(--sots-control-font, 12px)/1.3 Arial, Helvetica, sans-serif;
}

body.sots-operator-page .person-identity-lookup-input:focus {
    border-color: var(--sots-primary, #1f446d);
    outline: none;
}

body.sots-operator-page .person-identity-lookup-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
}

body.sots-operator-page .person-identity-lookup-btn {
    appearance: none;
    margin: 0;
    padding: 0 var(--sots-control-pad-x, 8px);
    height: var(--sots-control-h, 24px);
    border: 1px solid var(--sots-primary, #1f446d);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-primary, #1f446d);
    color: #fff;
    font: 600 var(--sots-control-font, 12px)/1 Arial, Helvetica, sans-serif;
    cursor: pointer;
}

body.sots-operator-page .person-identity-lookup-btn:hover {
    background: var(--sots-primary-dark, #173f70);
    border-color: var(--sots-primary-dark, #173f70);
}

body.sots-operator-page .person-identity-lookup-btn-secondary {
    background: #fff;
    color: var(--sots-primary, #1f446d);
}

body.sots-operator-page .person-identity-lookup-btn-secondary:hover {
    background: var(--sots-surface, #f4f7fa);
    color: var(--sots-primary-dark, #173f70);
}

body.sots-operator-page .person-identity-lookup-badge {
    flex: 0 0 auto;
    padding: 1px 5px;
    border-radius: 4px;
    font: 700 9px/1.2 Arial, Helvetica, sans-serif;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

body.sots-operator-page .person-identity-lookup-badge.is-live-external {
    background: #e8f5e9;
    color: #1a5c35;
}

body.sots-operator-page .person-identity-lookup-badge.is-cached-external {
    background: #fff8e6;
    color: #8a6d00;
}

body.sots-operator-page .person-identity-lookup-badge.is-internal {
    background: #eef2f6;
    color: #486581;
}

body.sots-operator-page .person-identity-lookup-section-head {
    margin: 6px 0 2px;
    font: 700 10px/1.2 Arial, Helvetica, sans-serif;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--sots-muted, #5f7488);
}

body.sots-operator-page .person-identity-lookup-section-head:first-child {
    margin-top: 0;
}

body.sots-operator-page .person-identity-lookup-status {
    margin: 2px 0 0;
    font-size: 11px;
    color: var(--sots-muted, #5f7488);
}

body.sots-operator-page .person-identity-lookup-status.is-error {
    color: #9b1d30;
}

body.sots-operator-page .person-identity-section-lookup .person-identity-lookup-results {
    margin-top: 6px;
    padding: 8px 10px;
    border: 1px solid var(--sots-border, #d5dde5);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #f4f7fa);
}

body.sots-operator-page .person-identity-lookup-cache-banner {
    margin: 6px 0 0;
    padding: 6px 8px;
    font-size: 11px;
    line-height: 1.35;
    border-radius: var(--sots-control-radius, 6px);
    color: var(--sots-text, #102a43);
    background: #eef3f8;
    border: 1px solid var(--sots-border, #d5dde5);
}

body.sots-operator-page .person-identity-lookup-cache-banner.is-live {
    background: #e8f5ee;
    border-color: #b8dcc8;
}

body.sots-operator-page .person-identity-lookup-cache-banner.is-cached {
    background: #f3f0e8;
    border-color: #ddd4c4;
}

body.sots-operator-page .person-identity-lookup-block + .person-identity-lookup-block {
    margin-top: 2px;
    padding-top: 2px;
    border-top: 0;
}

body.sots-operator-page .person-identity-lookup-results {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px dashed var(--sots-border, #d5dde5);
}

body.sots-operator-page .person-identity-lookup-conflict {
    padding: 6px 8px;
    border-radius: var(--sots-control-radius, 6px);
    background: #fff4e5;
    border: 1px solid #e6b422;
    color: #6b4c00;
    font-size: 11px;
    line-height: 1.35;
}

body.sots-operator-page .person-identity-lookup-platform {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 8px;
    align-items: baseline;
    margin: 0 0 4px;
    font-size: 11px;
}

body.sots-operator-page .person-identity-card-actions {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
}

body.sots-operator-page .person-copy-card-btn,
body.sots-operator-page .person-identity-card-popover .person-copy-card-btn,
body.sots-operator-page .person-identity-card-popover .person-identity-card-close {
    flex: 0 0 auto;
    margin: 0;
    padding: 0 10px;
    height: var(--sots-control-h, 24px);
    border: 1px solid var(--sots-border, #d5dde5);
    border-radius: var(--sots-control-radius, 6px);
    background: #fff;
    color: var(--sots-primary, #1f446d);
    font: 600 var(--sots-control-font, 12px)/1 Arial, Helvetica, sans-serif;
    cursor: pointer;
}

body.sots-operator-page .person-copy-card-btn:hover,
body.sots-operator-page .person-identity-card-popover .person-copy-card-btn:hover,
body.sots-operator-page .person-identity-card-popover .person-identity-card-close:hover {
    background: var(--sots-primary-soft, #eef4fb);
    border-color: var(--sots-primary, #1f446d);
    color: var(--sots-primary-dark, #173f70);
}

body.sots-operator-page .relationship-intake-card {
    margin: 0;
    padding: 8px 10px;
    border: 1px solid #d5dde5;
    border-radius: 6px;
    background: #fff;
    color: #102a43;
    font: 12px/1.45 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    white-space: pre-wrap;
    word-break: break-word;
}

body.sots-operator-page .person-aka {
    display: none;
}

body.sots-operator-page .relationship-intake-grid {
    display: grid;
    gap: 4px 0;
    margin: 0;
}

body.sots-operator-page .relationship-intake-row {
    display: grid;
    grid-template-columns: 7.5rem minmax(0, 1fr);
    gap: 6px 10px;
    align-items: start;
    padding: 3px 0;
    border-bottom: 1px solid #eef2f6;
}

body.sots-operator-page .relationship-intake-row:last-child {
    border-bottom: 0;
}

body.sots-operator-page .relationship-intake-row dt {
    margin: 0;
    font-size: 11px;
    font-weight: 700;
    color: #5f7488;
}

body.sots-operator-page .relationship-intake-row dd {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    color: #102a43;
    word-break: break-word;
}

body.sots-operator-page .relationship-intake-row.is-empty dd {
    color: #9aa8b5;
    font-weight: 500;
}

body.sots-operator-page .person-gender {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 6px;
    min-width: var(--sots-control-h, 24px);
    height: var(--sots-control-h, 24px);
    padding: 0 6px;
    border: 1px solid var(--sots-border, #c9d4e0);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
    color: var(--sots-muted, #5f7488);
    font-size: var(--sots-control-font, 12px);
    font-weight: 750;
    line-height: 1;
    letter-spacing: 0.02em;
    vertical-align: middle;
    cursor: pointer;
    text-transform: lowercase;
    flex-shrink: 0;
}

body.sots-operator-page .person-gender:hover,
body.sots-operator-page .person-gender:focus-visible {
    color: var(--sots-primary, #0b3d6e);
    border-color: rgba(11, 61, 110, 0.35);
    outline: none;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-contact-method.person-contact-phone-row {
    display: flex !important;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-contact-methods:has(.person-contact-email-row) {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    column-gap: 0;
    row-gap: 2px;
}

body.sots-operator-page .person-gender.is-unset {
    color: var(--sots-primary, #0b3d6e);
    font-weight: 700;
    font-size: 14px;
    border-style: dashed;
    border-color: rgba(11, 61, 110, 0.35);
}

body.sots-operator-page .person-trestle-demo {
    flex-shrink: 0;
    margin-left: 6px;
    color: var(--sots-muted, #5a6b7d);
    font-size: 11px;
    font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
}

body.sots-operator-page.is-operator-mobile .person-trestle-demo {
    font-size: 11px;
}

body.sots-operator-page.is-operator-mobile .person-gender {
    min-width: 32px;
    height: 32px;
    padding: 0 8px;
    font-size: 12px;
    margin-left: 6px;
    touch-action: manipulation;
}

body.sots-operator-page.is-operator-mobile .person-gender.is-unset {
    font-size: 16px;
}

body.sots-operator-page .operator-person-row-menu-campaign button[role="menuitem"] {
    display: block;
    width: 100%;
    margin: 0;
    padding: 8px 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #243b53;
    font: 650 12px/1.3 Arial, Helvetica, sans-serif;
    text-align: left;
    cursor: pointer;
    box-sizing: border-box;
}

body.sots-operator-page .operator-person-row-menu-campaign button[role="menuitem"]:hover,
body.sots-operator-page .operator-person-row-menu-campaign button[role="menuitem"]:focus-visible {
    background: var(--sots-primary-soft, #eef4fb);
    outline: none;
}

body.sots-operator-page .person-craigslist,
body.sots-operator-page .person-craigslist-provenance {
    display: none !important;
}

body.sots-operator-page .person-craigslist {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 5px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border: 1px solid var(--sots-border, #c9d4e0);
    border-radius: 3px;
    background: var(--sots-primary, #0b3d6e);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.02em;
    vertical-align: baseline;
    cursor: pointer;
}

body.sots-operator-page .person-craigslist:hover {
    background: var(--sots-primary-dark, #082f54);
}

body.sots-operator-page .person-craigslist-provenance {
    appearance: none;
    display: block;
    width: fit-content;
    max-width: 100%;
    margin: 4px 0 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--sots-muted, #5c6570);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.35;
    text-align: left;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body.sots-operator-page .person-craigslist-provenance:hover {
    color: var(--sots-primary, #0b3d6e);
}

body.sots-operator-page .ticket.is-contact-only .person-lane-inline {
    color: #5f7488;
    background: #eef3f9;
}

body.sots-operator-page .ticket.is-contact-only:not(.active) {
    background: #fbfcfe;
}

body.sots-operator-page .person-endpoints {
    margin-top: 1px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.35;
    color: #5f7488;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.sots-operator-page .person-owner-details {
    display: flex;
    flex-direction: column;
    gap: 1px;
    margin-top: 1px;
    padding: 0;
    border-radius: 0;
    background: transparent;
}

body.sots-operator-page .person-owner-detail {
    min-width: 0;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
    min-height: 20px;
    font-size: 11px;
    line-height: 1.25;
}

body.sots-operator-page .person-contact-methods {
    display: flex;
    flex-direction: column;
    gap: var(--person-meta-row-gap);
    margin-top: 0;
    min-width: 0;
    font-size: 11px;
    font-weight: 500;
    line-height: var(--person-meta-line-height);
    color: #5f7488;
}

body.sots-operator-page .person-contact-method {
    font: inherit;
    color: inherit;
}

body.sots-operator-page .person-contact-label-btn {
    padding: 0;
    border: 0;
    background: transparent;
    font: inherit;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

body.sots-operator-page .person-contact-label-btn:hover,
body.sots-operator-page .person-contact-label-btn:focus-visible {
    color: #174ea6;
    text-decoration: underline;
    outline: none;
}

body.sots-operator-page .person-owner-label-btn {
    min-width: 0;
    overflow: hidden;
    padding: 0;
    border: 0;
    background: transparent;
    color: #687789;
    font: inherit;
    font-size: 10px;
    font-weight: 650;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
}

body.sots-operator-page .person-owner-label-btn:hover,
body.sots-operator-page .person-owner-label-btn:focus-visible {
    color: #174ea6;
    text-decoration: underline;
    outline: none;
}

body.sots-operator-page .person-owner-detail strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #102a43;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

body.sots-operator-page .person-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 2px 0 4px;
}

body.sots-operator-page .operator-category-section {
    border-bottom: 1px solid var(--op-border-soft, #eef2f7);
    padding: 2px 0 8px;
    background: linear-gradient(180deg, #fbfcfe 0%, #ffffff 100%);
}

body.sots-operator-page .operator-category-head {
    padding: 8px 12px 4px;
    font-size: 10px;
    font-weight: 750;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #8a97a8;
}

body.sots-operator-page .operator-category-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 2px 10px 6px;
}

body.sots-operator-page .operator-category-filter-row.is-nested {
    padding-top: 0;
    padding-bottom: 8px;
    margin: 0 10px;
    border-top: 1px dashed var(--op-border-soft, rgba(16, 42, 67, 0.1));
    padding-top: 8px;
}

body.sots-operator-page .operator-category-subhead {
    padding: 2px 12px 0;
    font-size: 11px;
    font-weight: 650;
    color: #687789;
}

body.sots-operator-page .operator-category-chip {
    appearance: none;
    border: 1px solid var(--op-border-soft, rgba(16, 42, 67, 0.12));
    background: #ffffff;
    color: #4a5d72;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.2;
    padding: 0 8px;
    height: 24px;
    min-height: 24px;
    border-radius: 5px;
    cursor: pointer;
    transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease, box-shadow 0.12s ease;
}

body.sots-operator-page .operator-category-chip:hover,
body.sots-operator-page .operator-category-chip:focus-visible {
    background: var(--op-soft, #f6f9fd);
    border-color: rgba(31, 68, 109, 0.28);
    color: var(--op-ink, #102a43);
    outline: none;
}

body.sots-operator-page .operator-category-chip .operator-category-count {
    font-weight: 700;
    color: #8a97a8;
    margin-left: 1px;
}

body.sots-operator-page .operator-category-chip.is-active {
    background: rgba(31, 68, 109, 0.1);
    border-color: rgba(31, 68, 109, 0.35);
    color: var(--op-accent, #1f446d);
    font-weight: 750;
    text-decoration: none;
    box-shadow: inset 0 0 0 1px rgba(31, 68, 109, 0.08);
}

body.sots-operator-page .operator-category-chip.is-active .operator-category-count {
    color: var(--op-accent, #1f446d);
}

body.sots-operator-page .operator-category-chip.is-dating {
    color: #7a4550;
    border-color: rgba(122, 69, 80, 0.22);
}

body.sots-operator-page .operator-category-chip.is-dating.is-active {
    background: rgba(122, 69, 80, 0.1);
    border-color: rgba(122, 69, 80, 0.38);
    color: #6a3842;
    box-shadow: inset 0 0 0 1px rgba(122, 69, 80, 0.08);
}

body.sots-operator-page .operator-bulk-toolbar {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 0 0 auto;
    padding: 4px 8px 4px !important;
    border-bottom: 1px solid var(--op-border-soft, #eef2f7) !important;
    background: #ffffff !important;
}

body.sots-operator-page .operator-bulk-toolbar.is-empty-selection {
    background: #fafbfc !important;
}

body.sots-operator-page .operator-bulk-toolbar.is-empty-selection .operator-bulk-actions-select,
body.sots-operator-page .operator-bulk-toolbar.is-empty-selection .operator-bulk-btn {
    opacity: 0.55;
    cursor: not-allowed;
}

body.sots-operator-page .operator-bulk-toolbar-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 8px;
    min-width: 0;
}

body.sots-operator-page .operator-bulk-toolbar-row .operator-bulk-campaign-strip:not([hidden]) {
    flex: 1 1 100%;
    width: 100%;
    order: 5;
}

body.sots-operator-page .operator-bulk-toolbar-row .operator-bulk-count {
    flex: 0 0 auto;
    white-space: nowrap;
}

body.sots-operator-page .operator-bulk-toolbar-row .operator-bulk-actions-select {
    flex: 1 1 auto;
    min-width: 108px;
}

body.sots-operator-page .operator-bulk-toolbar-row .operator-bulk-btn {
    flex: 0 0 auto;
}

body.sots-operator-page .operator-bulk-mark-strip {
    display: none;
    align-items: center;
    gap: 3px;
    flex: 0 0 auto;
}

body.sots-operator-page .operator-bulk-toolbar:not(.is-empty-selection) .operator-bulk-mark-strip {
    display: inline-flex;
}

body.sots-operator-page .operator-bulk-mark-btn,
body.sots-operator-page .operator-bulk-sms-btn {
    appearance: none;
    margin: 0;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border: 1px solid #c9d4e0;
    border-radius: 4px;
    background: #fff;
    color: #1f446d;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}

body.sots-operator-page .operator-bulk-mark-btn:disabled,
body.sots-operator-page .operator-bulk-sms-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

body.sots-operator-page .operator-bulk-mark-btn:not(:disabled):hover,
body.sots-operator-page .operator-bulk-sms-btn:not(:disabled):hover {
    background: #eef5ff;
    border-color: #9bb6d4;
}

body.sots-operator-page .operator-bulk-sms-btn {
    background: #1f446d;
    border-color: #1f446d;
    color: #fff;
    padding: 0 8px;
}

body.sots-operator-page .operator-bulk-campaign-strip {
    display: none;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}

body.sots-operator-page .operator-bulk-campaign-strip:not([hidden]) {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.sots-operator-page .operator-bulk-campaign-primary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    flex: 1 1 100%;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

body.sots-operator-page .operator-bulk-campaign-actions {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    flex: 1 1 auto;
    min-width: 0;
}

body.sots-opcon-page #sotsHeaderFocusBtn,
body.sots-opcon-page #sotsHeaderFocusBtnMobileHub {
    display: none !important;
}

body.sots-operator-page .operator-bulk-campaign-btn.operator-campaign-focus-btn {
    min-height: var(--sots-control-h, 24px);
    height: var(--sots-control-h, 24px);
    padding: 0 8px;
    font-size: var(--sots-control-font, 12px);
    font-weight: 650;
    border-color: var(--sots-primary, #0b3d6e);
    color: var(--sots-primary, #0b3d6e);
    background: var(--sots-surface, #fff);
}

body.sots-operator-page .operator-bulk-campaign-btn.operator-campaign-focus-btn:hover,
body.sots-operator-page .operator-bulk-campaign-btn.operator-campaign-focus-btn:focus {
    background: var(--sots-primary-soft, #e8eef5);
    outline: none;
}

body.sots-opcon-page .sots-header-focus-btn {
    order: 20;
    margin-left: 4px;
}

body.sots-operator-page .operator-bulk-campaign-target-wrap {
    display: flex;
    flex: 1 1 100%;
    align-items: center;
    gap: 6px;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    margin-right: 0;
    box-sizing: border-box;
}

body.sots-operator-page .operator-bulk-campaign-target-kicker {
    font-size: 10px;
    font-weight: 650;
    color: var(--sots-muted);
    white-space: nowrap;
    flex: 0 0 auto;
}

body.sots-operator-page .operator-bulk-campaign-target {
    appearance: auto;
    -webkit-appearance: menulist;
    flex: 1 1 auto;
    flex-shrink: 0;
    min-width: min(100%, 10.5rem);
    max-width: 100%;
    width: 100%;
    height: var(--sots-control-h);
    min-height: var(--sots-control-h);
    padding: 0 var(--sots-control-pad-x);
    border: 1px solid var(--sots-control-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    color: var(--sots-text);
    font-size: var(--sots-control-font);
    font-weight: 650;
    line-height: calc(var(--sots-control-h) - 4px);
    cursor: pointer;
    box-sizing: border-box;
}

body.sots-operator-page .operator-bulk-campaign-target:focus {
    outline: 2px solid var(--sots-primary-soft);
    outline-offset: 1px;
}

body.sots-operator-page .operator-person-row-menu-campaign .operator-person-row-menu-label {
    display: none;
}

body.sots-operator-page .operator-bulk-campaign-btn {
    appearance: none;
    margin: 0;
    height: var(--sots-control-h);
    min-height: var(--sots-control-h);
    padding: 0 var(--sots-control-pad-x);
    border: 1px solid var(--sots-control-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    color: var(--sots-primary);
    font-size: var(--sots-control-font);
    font-weight: 650;
    line-height: 1;
    cursor: pointer;
}

body.sots-operator-page .operator-bulk-campaign-btn.is-remove,
body.sots-operator-page .operator-bulk-campaign-btn.is-quiet {
    color: var(--sots-muted);
}

body.sots-operator-page .operator-bulk-campaign-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

body.sots-operator-page .operator-bulk-campaign-btn:not(:disabled):hover {
    background: var(--sots-primary-soft);
    border-color: var(--sots-primary);
}

body.sots-operator-page .operator-mark-picker,
body.sots-operator-page .operator-source-picker,
body.sots-operator-page #operatorMarkPickerWrap,
body.sots-operator-page #operatorSourcePickerWrap,
body.sots-operator-page #operatorPersonMarkMenu,
body.sots-operator-page #operatorPersonMarkBackdrop {
    display: none !important;
}

body.sots-discovery-contacts a.sots-contacts-show-unmarked,
body.sots-discovery-contacts .sots-sheet-mark-cat-col.is-mark {
    display: none !important;
}

body.sots-operator-page .operator-context-picker {
    min-width: 7.5rem;
    max-width: 12rem;
}

body.sots-operator-page .operator-mark-picker {
    min-width: 6.5rem;
    max-width: 10rem;
}

body.sots-operator-page .operator-source-picker {
    min-width: 7rem;
    max-width: 11rem;
}

body.sots-operator-page .operator-hide-x-check {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 0;
    height: var(--sots-control-h);
    padding: 0 6px;
    border: 1px solid var(--sots-control-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    color: var(--sots-muted);
    font-size: 10px;
    font-weight: 650;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
}

body.sots-operator-page .operator-hide-x-check[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-hide-x-check input {
    margin: 0;
    width: 12px;
    height: 12px;
    cursor: pointer;
}

body.sots-operator-page .operator-contact-categories-hide-x {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0;
    border-top: 0;
    width: 100%;
    box-sizing: border-box;
}

body.sots-operator-page .operator-bulk-sms-btn:not(:disabled):hover {
    background: #173556;
    border-color: #173556;
    color: #fff;
}

body.sots-operator-page .operator-bulk-actions-select {
    appearance: none;
    min-width: 140px;
    max-width: 220px;
    height: var(--sots-control-h);
    padding: 0 28px 0 var(--sots-control-pad-x);
    border-radius: var(--sots-control-radius);
    border: 1px solid var(--sots-control-border);
    background: var(--sots-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23204c82' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 10px center;
    color: var(--sots-primary);
    font-size: var(--sots-control-font);
    font-weight: 650;
    line-height: 1;
    cursor: pointer;
}

body.sots-operator-page .operator-bulk-actions-select:hover,
body.sots-operator-page .operator-bulk-actions-select:focus-visible {
    border-color: var(--sots-primary);
    outline: none;
    background-color: var(--sots-primary-soft);
}

body.sots-operator-page .ticket.is-selected:not(.active) {
    background: #f8fafc;
    box-shadow: inset 0 0 0 1px rgba(31, 68, 109, 0.18);
    outline: none;
}

body.sots-operator-page .ticket.is-selected:not(.active) .person-select {
    opacity: 1;
}

body.sots-operator-page .operator-bulk-toolbar-row.is-category {
    padding-top: 6px;
    border-top: 1px solid rgba(16, 42, 67, 0.06);
}

body.sots-operator-page .operator-bulk-check {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0 2px;
    font-size: var(--sots-control-font);
    font-weight: 600;
    color: var(--sots-muted);
    cursor: pointer;
    user-select: none;
}

body.sots-operator-page .operator-bulk-check input {
    width: 14px;
    height: 14px;
    margin: 0;
    accent-color: var(--op-accent, #1f446d);
}

body.sots-operator-page .operator-bulk-btn {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--sots-control-h);
    height: var(--sots-control-h);
    padding: 0 var(--sots-control-pad-x);
    border-radius: var(--sots-control-radius);
    border: 1px solid transparent;
    background: transparent;
    color: var(--sots-primary);
    font-size: var(--sots-control-font);
    font-weight: 650;
    line-height: 1;
    cursor: pointer;
    transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}

body.sots-operator-page .operator-bulk-btn:hover,
body.sots-operator-page .operator-bulk-btn:focus-visible {
    background: var(--sots-primary-soft);
    border-color: var(--sots-border);
    outline: none;
}

body.sots-operator-page .operator-bulk-btn.is-primary {
    background: var(--op-accent, #1f446d);
    border-color: var(--op-accent, #1f446d);
    color: #ffffff;
}

body.sots-operator-page .operator-bulk-btn.is-primary:hover,
body.sots-operator-page .operator-bulk-btn.is-primary:focus-visible {
    background: #183556;
    border-color: #183556;
}

body.sots-operator-page .operator-bulk-btn.is-quiet {
    background: transparent;
    border-color: transparent;
    color: #5f7488;
    padding: 0 8px;
    font-weight: 600;
}

body.sots-operator-page .operator-bulk-btn.is-quiet:hover,
body.sots-operator-page .operator-bulk-btn.is-quiet:focus-visible {
    color: var(--op-ink, #102a43);
    background: #f6f9fd;
}

body.sots-operator-page .operator-bulk-count {
    margin-left: 0;
    font-size: 12px;
    font-weight: 600;
    color: #7a8b9c;
    letter-spacing: 0.01em;
    font-variant-numeric: tabular-nums;
}

body.sots-operator-page .operator-campaign-action-hint {
    flex: 1 1 120px;
    min-width: 0;
    font-size: 11px;
    line-height: 1.35;
    color: var(--sots-muted, #687789);
}

body.sots-operator-page .operator-campaign-action-hint:empty {
    display: none;
}

body.sots-operator-page .operator-campaign-surface-toggle,
body.sots-operator-page .operator-campaign-work-surface {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    margin-right: 6px;
}

body.sots-operator-page .operator-campaign-work-surface {
    display: flex;
    margin: 0 0 8px;
    width: 100%;
}

body.sots-operator-page .operator-campaign-work-surface-label,
body.sots-operator-page .operator-campaign-surface-toggle .operator-campaign-work-surface-label {
    font-size: 10px;
    font-weight: 650;
    color: var(--sots-muted, #5a6775);
    margin-right: 2px;
}

body.sots-operator-page .operator-campaign-surface-btn,
body.sots-operator-page .operator-campaign-work-surface-btn {
    appearance: none;
    margin: 0;
    padding: 0 var(--sots-control-pad-x, 8px);
    min-height: var(--sots-control-h, 24px);
    border: 1px solid var(--sots-border, #d5dde6);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
    font-size: var(--sots-control-font, 12px);
    font-weight: 650;
    color: var(--sots-primary, #0b3d6e);
    cursor: pointer;
}

body.sots-operator-page .operator-campaign-surface-btn.is-active,
body.sots-operator-page .operator-campaign-work-surface-btn.is-active {
    border-color: rgba(11, 61, 110, 0.35);
    background: var(--sots-primary-soft, #eef4fb);
}

body.sots-operator-page .operator-campaign-grid-modal {
    position: fixed;
    inset: 0;
    z-index: 45000;
    pointer-events: none;
}

body.sots-operator-page .operator-campaign-grid-modal[hidden] {
    display: none !important;
}

body.sots-operator-page.sots-opcon-campaign-grid-modal-open .operator-campaign-grid-modal {
    pointer-events: auto;
}

body.sots-operator-page .operator-campaign-grid-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(16, 42, 67, 0.28);
}

body.sots-operator-page .operator-campaign-grid-modal-panel {
    position: fixed;
    z-index: 1;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    width: min(1100px, calc(100vw - 48px));
    height: min(720px, calc(100vh - 96px));
    min-width: 420px;
    min-height: 280px;
    max-width: calc(100vw - 16px);
    max-height: calc(100vh - 56px);
    border-radius: 10px;
    border: 1px solid var(--sots-border, #d5dde6);
    background: #fff;
    box-shadow: 0 18px 48px rgba(16, 42, 67, 0.22);
    overflow: hidden;
}

body.sots-operator-page .operator-campaign-grid-modal-panel.is-maximized {
    left: 12px !important;
    top: 56px !important;
    right: 12px !important;
    bottom: 12px !important;
    width: auto !important;
    height: auto !important;
    transform: none !important;
}

body.sots-operator-page .operator-campaign-grid-modal-panel.is-minimized {
    left: auto !important;
    right: 16px !important;
    bottom: 16px !important;
    top: auto !important;
    width: min(420px, calc(100vw - 32px)) !important;
    height: auto !important;
    min-height: 0 !important;
    transform: none !important;
}

body.sots-operator-page .operator-campaign-grid-modal-panel.is-minimized .operator-campaign-grid-modal-body,
body.sots-operator-page .operator-campaign-grid-modal-panel.is-minimized .operator-campaign-grid-modal-resize {
    display: none !important;
}

body.sots-operator-page .operator-campaign-grid-modal-head {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    padding: 6px 10px;
    border-bottom: 1px solid var(--sots-border, #d5dde6);
    background: #fafbfd;
    cursor: move;
    user-select: none;
}

body.sots-operator-page .operator-campaign-grid-modal-title {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 12px;
    font-weight: 700;
    color: var(--sots-primary, #0b3d6e);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.sots-operator-page .operator-campaign-grid-modal-winbtns {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    flex: 0 0 auto;
}

body.sots-operator-page .operator-campaign-grid-modal-winbtn {
    appearance: none;
    margin: 0;
    padding: 0 var(--sots-control-pad-x, 8px);
    min-height: var(--sots-control-h, 24px);
    border: 1px solid var(--sots-border, #d5dde6);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
    font-size: var(--sots-control-font, 12px);
    font-weight: 650;
    color: var(--sots-primary, #0b3d6e);
    cursor: pointer;
}

body.sots-operator-page .operator-campaign-grid-modal-winbtn.is-close {
    color: #8b3a3a;
}

body.sots-operator-page .operator-campaign-grid-modal-body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

body.sots-operator-page .operator-campaign-grid-modal-body .operator-campaign-grid-frame {
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
    border: 0;
    background: #fff;
}

body.sots-operator-page .operator-campaign-grid-modal-resize {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 18px;
    height: 18px;
    cursor: nwse-resize;
    background: linear-gradient(135deg, transparent 50%, rgba(11, 61, 110, 0.35) 50%);
}

.operator-quick-pad-modal {
    position: fixed;
    inset: 0;
    z-index: 45000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
    box-sizing: border-box;
}

.operator-quick-pad-modal[hidden] {
    display: none !important;
}

.operator-quick-pad-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
}

.operator-quick-pad-modal-panel {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    width: min(720px, calc(100vw - 24px));
    height: min(70vh, 560px);
    max-height: calc(100vh - 48px);
    border-radius: 10px;
    border: 1px solid var(--sots-border, #d8e1ec);
    background: #fff;
    box-shadow: 0 16px 48px rgba(15, 23, 42, 0.2);
    overflow: hidden;
}

.operator-quick-pad-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 12px 4px;
    border-bottom: 0;
    background: #f8fafc;
}

.operator-quick-pad-modal-head-main {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex: 1 1 auto;
    min-width: 0;
    flex-wrap: wrap;
}

.operator-quick-pad-modal-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--sots-primary, #0b3d6e);
}

.operator-quick-pad-modal-status {
    font-size: 12px;
    font-weight: 700;
    color: var(--sots-muted, #5c6570);
}

.operator-quick-pad-modal-status.is-saved {
    color: var(--sots-primary, #0b3d6e);
}

.operator-quick-pad-modal-status.is-pending {
    opacity: 0.85;
}

.operator-quick-pad-modal-status.is-error {
    color: #8b3a3a;
}

.operator-quick-pad-modal-hint {
    font-size: 11px;
    color: var(--sots-muted, #5c6570);
    margin: 0;
    padding: 0 12px 8px;
    border-bottom: 1px solid var(--op-border-soft, #eef2f7);
    background: #f8fafc;
}

.operator-quick-pad-modal-close {
    font-size: 12px;
    height: var(--sots-control-h, 24px);
    padding: 0 var(--sots-control-pad-x, 8px);
    border-radius: var(--sots-control-radius, 6px);
    border: 1px solid var(--sots-border, #d8e1ec);
    background: #fff;
    color: var(--sots-text, #1a2a3a);
    cursor: pointer;
}

.operator-quick-pad-modal-editor {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    border: 0;
    resize: none;
    padding: 12px 14px;
    font-size: 14px;
    line-height: 1.45;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    box-sizing: border-box;
}

.operator-quick-pad-modal-foot {
    padding: 6px 12px 8px;
    border-top: 1px solid var(--op-border-soft, #eef2f7);
    font-size: 11px;
    color: var(--sots-muted, #5c6570);
    text-align: right;
}

body.sots-operator-page .operator-people-list-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 4px 10px 6px;
    border-bottom: 1px solid var(--op-border-soft, #eef2f7);
    background: #fafbfd;
}

body.sots-operator-page .operator-people-list-meta-text {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 11px;
    font-weight: 650;
    color: var(--sots-muted, #5c6b7a);
    font-variant-numeric: tabular-nums;
}

body.sots-operator-page .operator-people-list-show-all {
    flex: 0 0 auto;
    min-height: var(--sots-control-h, 24px);
    padding: 0 8px;
    border: 1px solid rgba(32, 76, 130, 0.25);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
    color: var(--sots-primary, #204c82);
    font-size: var(--sots-control-font, 12px);
    font-weight: 650;
    cursor: pointer;
}

body.sots-operator-page .operator-people-list-show-all[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-bulk-category-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 11px;
    font-weight: 750;
    color: var(--op-ink, #102a43);
}

body.sots-operator-page .operator-bulk-category-kicker {
    color: #687789;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    font-size: 10px;
}

body.sots-operator-page .operator-bulk-category-select {
    appearance: none;
    min-width: 148px;
    max-width: 200px;
    height: 28px;
    padding: 0 28px 0 10px;
    border-radius: 8px;
    border: 1px solid var(--op-border, rgba(16, 42, 67, 0.14));
    background-color: #ffffff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath stroke='%235f7488' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1.5 2.2 L6 6.2 L10.5 2.2'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 10px 7px;
    color: var(--op-ink, #102a43);
    font-size: 12px;
    font-weight: 650;
    line-height: 1;
    cursor: pointer;
}

body.sots-operator-page .operator-bulk-category-select:hover,
body.sots-operator-page .operator-bulk-category-select:focus-visible {
    border-color: rgba(31, 68, 109, 0.35);
    outline: none;
}


/* Sources chips retired — Sources ▾ + Categories ▾ share .operator-filter-menu-* in operator-index.php */

body.sots-operator-page .person-category {
    display: inline-block;
    margin: 2px 0 4px;
    font-size: 10px;
    font-weight: 700;
    color: #0b3d6e;
}

body.sots-operator-page .person-category.is-dating {
    color: #7a4550;
}

body.sots-operator-page:not(.sots-opcon-show-list-categories):not(.sots-opcon-head-removal-note-only) .person-category-row {
    display: none;
}

body.sots-operator-page.sots-opcon-head-removal-note-only .person-category-row {
    display: flex;
}

body.sots-operator-page .person-category-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 6px;
    margin: 2px 0 4px;
    min-height: 18px;
}

body.sots-operator-page .person-category-chip {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    min-height: var(--sots-control-h, 24px);
    padding: 0 var(--sots-control-pad-x, 8px);
    border: 1px solid var(--sots-border, rgba(16, 42, 67, 0.12));
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-surface, #fff);
    font-size: var(--sots-control-font, 12px);
    font-weight: 650;
    line-height: 1.2;
    color: var(--sots-primary, #204c82);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
}

body.sots-operator-page button.person-category-chip {
    appearance: none;
    margin: 0;
}

body.sots-operator-page button.person-category-chip:hover,
body.sots-operator-page button.person-category-chip:focus-visible {
    border-color: rgba(32, 76, 130, 0.35);
    outline: none;
    box-shadow: 0 0 0 2px rgba(32, 76, 130, 0.12);
}

body.sots-operator-page .person-category-chip.is-dating {
    color: #7a4550;
    border-color: rgba(122, 69, 80, 0.22);
    background: rgba(122, 69, 80, 0.06);
}

body.sots-operator-page .person-category-chip.is-empty {
    color: var(--sots-muted, #5c6b7a);
    font-weight: 600;
    font-style: normal;
    border-style: dashed;
    background: transparent;
}

body.sots-operator-page.sots-opcon-category-panel-open {
    overflow: hidden;
}

body.sots-operator-page .operator-person-category-panel {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 12px;
}

body.sots-operator-page .operator-person-category-panel[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-person-category-panel-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    margin: 0;
    padding: 0;
    background: rgba(12, 24, 40, 0.45);
    cursor: pointer;
}

body.sots-operator-page .operator-person-category-panel-card {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    width: min(420px, 100%);
    max-height: min(88vh, 720px);
    border: 1px solid var(--sots-border, #dde3ec);
    border-radius: 10px;
    background: var(--sots-surface, #fff);
    box-shadow: 0 12px 40px rgba(12, 24, 40, 0.18);
    overflow: hidden;
}

body.sots-operator-page .operator-person-category-panel-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px 6px;
    border-bottom: 1px solid var(--op-border-soft, #eef2f7);
}

body.sots-operator-page .operator-person-category-panel-title {
    flex: 1 1 auto;
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--sots-text, #102a43);
}

body.sots-operator-page .operator-person-category-panel-status {
    flex: 0 0 auto;
    font-size: 11px;
    color: var(--sots-muted, #5c6b7a);
}

body.sots-operator-page .operator-person-category-panel-close {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: var(--sots-control-radius, 6px);
    background: transparent;
    color: var(--sots-muted, #5c6b7a);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}

body.sots-operator-page .operator-person-category-panel-sub {
    margin: 0;
    padding: 0 12px 8px;
    font-size: 12px;
    color: var(--sots-muted, #5c6b7a);
}

body.sots-operator-page .operator-person-category-panel-create-top {
    padding: 0 12px 10px;
    border-bottom: 1px solid var(--op-border-soft, #eef2f7);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

body.sots-operator-page .operator-person-category-panel-create-top .operator-person-category-panel-action {
    align-self: flex-start;
}

body.sots-operator-page .operator-person-category-panel-assign {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 0 12px 8px;
}

body.sots-operator-page .operator-person-category-panel-checklist {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

body.sots-operator-page .operator-person-category-panel-option {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 6px 8px;
    border-radius: var(--sots-control-radius, 6px);
    font-size: var(--sots-control-font, 12px);
    color: var(--sots-text, #102a43);
    cursor: pointer;
}

body.sots-operator-page .operator-person-category-panel-option.is-nested {
    padding-left: 22px;
}

body.sots-operator-page .operator-person-category-panel-option:hover {
    background: var(--sots-primary-soft, rgba(32, 76, 130, 0.06));
}

body.sots-operator-page .operator-person-category-panel-manage {
    border-top: 1px solid var(--op-border-soft, #eef2f7);
    padding: 0 12px;
}

body.sots-operator-page .operator-person-category-panel-manage summary {
    cursor: pointer;
    padding: 8px 0;
    font-size: 12px;
    font-weight: 650;
    color: var(--sots-primary, #204c82);
}

body.sots-operator-page .operator-person-category-panel-manage-body {
    padding-bottom: 10px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

body.sots-operator-page .operator-person-category-panel-manage-block {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

body.sots-operator-page .operator-person-category-panel-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

body.sots-operator-page .operator-person-category-panel-input,
body.sots-operator-page .operator-person-category-panel-select {
    width: 100%;
    min-height: var(--sots-control-h, 24px);
    border: 1px solid var(--sots-border, #dde3ec);
    border-radius: var(--sots-control-radius, 6px);
    padding: 0 var(--sots-control-pad-x, 8px);
    font-size: var(--sots-control-font, 12px);
    color: var(--sots-text, #102a43);
    background: var(--sots-surface, #fff);
}

body.sots-operator-page .operator-person-category-panel-action {
    align-self: flex-start;
    min-height: var(--sots-control-h, 24px);
    padding: 0 10px;
    border: 1px solid rgba(32, 76, 130, 0.25);
    border-radius: var(--sots-control-radius, 6px);
    background: var(--sots-primary, #204c82);
    color: #fff;
    font-size: var(--sots-control-font, 12px);
    font-weight: 650;
    cursor: pointer;
}

body.sots-operator-page .operator-person-category-panel-action.is-quiet {
    background: var(--sots-surface, #fff);
    color: var(--sots-primary, #204c82);
}

body.sots-operator-page .operator-person-category-panel-hint {
    margin: 0;
    font-size: 11px;
    line-height: 1.35;
    color: var(--sots-muted, #5c6b7a);
}

body.sots-operator-page .operator-person-category-panel-foot {
    padding: 8px 12px 12px;
    border-top: 1px solid var(--op-border-soft, #eef2f7);
}

@media (min-width: 720px) {
    body.sots-operator-page .operator-person-category-panel {
        align-items: center;
    }
}

body.sots-operator-page .operator-contact-category-bar {
    display: flex;
    flex-wrap: nowrap;
    gap: 10px 12px;
    align-items: flex-start;
    padding: 6px 14px 8px;
    border-bottom: 1px solid var(--op-border-soft, #eef2f7);
    background: #ffffff;
}

body.sots-operator-page .operator-contact-category-bar > .operator-thread-section {
    flex: 1 1 auto;
    min-width: 0;
    border-bottom: 0;
}

body.sots-operator-page .operator-gender-toggle {
    display: inline-flex;
    flex-direction: column;
    gap: 4px;
    align-items: flex-end;
    flex: 0 0 auto;
    margin-left: auto;
    padding-top: 2px;
}

body.sots-operator-page .operator-gender-toggle[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-gender-toggle .operator-contact-category-kicker {
    display: block;
    font-size: 11px;
    font-weight: 650;
    letter-spacing: 0.01em;
    text-transform: none;
    color: #687789;
}

body.sots-operator-page .operator-gender-btn-row {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

body.sots-operator-page .operator-gender-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    margin: 0;
    padding: 0 6px;
    border: 1px solid #c9d4e0;
    border-radius: 5px;
    background: #fff;
    color: #40566d;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}

body.sots-operator-page .operator-gender-btn.is-active {
    border-color: #2f6fed;
    background: #eef4ff;
    color: #174ea6;
}

body.sots-operator-page .operator-gender-btn:hover,
body.sots-operator-page .operator-gender-btn:focus-visible {
    border-color: #2f6fed;
    outline: none;
}

body.sots-operator-page .operator-actions-strip {
    border-bottom: 1px solid rgba(216, 225, 236, 0.7);
    background: #ffffff;
}

body.sots-operator-page .operator-actions-strip[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-actions-strip .operator-connect-bar {
    padding: 8px 12px 10px;
}

body.sots-operator-page .operator-thread-notes {
    flex: 1 1 auto;
    min-width: 0;
}

body.sots-operator-page .operator-thread-notes[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-thread-notes-head,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-notes .operator-thread-notes-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

body.sots-operator-page .operator-thread-notes-status,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-notes .operator-thread-notes-status {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 11px;
    color: #687789;
    text-align: left;
}

body.sots-operator-page .operator-thread-notes-field,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-notes .operator-thread-notes-field {
    position: relative;
    display: block;
    width: 100%;
}

body.sots-operator-page .operator-thread-notes-save,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-notes .operator-thread-notes-save {
    appearance: none;
    position: absolute;
    right: 5px;
    bottom: 5px;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 0;
    min-height: 0;
    height: 18px;
    margin: 0;
    padding: 0 6px;
    border: 1px solid #c5d0dc;
    border-radius: 3px;
    background: #f7f9fb;
    color: #486581;
    font-size: 10px;
    font-weight: 650;
    line-height: 1;
    cursor: pointer;
    box-shadow: none;
}

body.sots-operator-page .operator-thread-notes-save:hover {
    border-color: #9fb3c8;
    background: #eef3f8;
    color: #243b53;
}

body.sots-operator-page .operator-thread-notes-save:active {
    background: #e4ebf2;
}

body.sots-operator-page .operator-thread-notes-add {
    appearance: none;
    flex: 0 0 auto;
    margin: 0;
    padding: 2px 8px;
    border: 1px solid #c9d4e0;
    border-radius: 6px;
    background: #fff;
    color: #174ea6;
    font-size: 11px;
    font-weight: 650;
    cursor: pointer;
}

body.sots-operator-page .operator-thread-notes-editor,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-note-editor.operator-thread-notes-editor {
    display: block;
    width: 100%;
    min-height: 52px;
    margin: 0;
    padding: 5px 52px 22px 6px;
    border: 1px solid #d5dee8;
    border-radius: 6px;
    background: #fbfcfe;
    color: #102a43;
    font: inherit;
    font-size: 12px;
    line-height: 1.35;
    resize: none;
    overflow-y: hidden;
    box-sizing: border-box;
}

body.sots-operator-page .operator-thread-notes-editor:focus,
:is(body.sots-operator-page, body.sots-operator-focus-shell) .operator-focus-note-editor.operator-thread-notes-editor:focus {
    outline: none;
    border-color: #2f6fed;
    background: #fff;
}

body.sots-operator-page .operator-thread-notes-body {
    max-height: 96px;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

body.sots-operator-page .operator-person-row-menu {
    position: fixed;
    z-index: 80;
    min-width: 168px;
    max-width: min(280px, calc(100vw - 16px));
    padding: 0;
    border: 1px solid #d5dee8;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(16, 42, 67, 0.14);
    display: flex;
    flex-direction: column;
    max-height: min(88vh, 520px);
}

body.sots-operator-page .operator-person-row-menu.is-sheet {
    z-index: 91;
    left: 8px !important;
    right: 8px !important;
    top: max(8px, env(safe-area-inset-top, 0px)) !important;
    bottom: auto !important;
    width: auto;
    max-width: none;
    max-height: min(92vh, 640px);
    box-shadow: 0 12px 32px rgba(16, 42, 67, 0.2);
}

body.sots-operator-page .operator-person-row-menu-backdrop {
    position: fixed;
    inset: 0;
    z-index: 90;
    border: 0;
    padding: 0;
    margin: 0;
    background: rgba(16, 42, 67, 0.38);
}

body.sots-operator-page .operator-person-row-menu-backdrop[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-person-row-menu-head {
    flex: 0 0 auto;
    padding: 10px 12px 8px;
    font-size: 12px;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--sots-muted, #8a97a8);
    border-bottom: 1px solid #e8eef5;
}

body.sots-operator-page .operator-person-row-menu-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-y;
    padding: 6px;
}

body.sots-operator-page .operator-person-row-menu-scroll > button[role="menuitem"] {
    display: block;
    width: 100%;
    margin: 0;
    padding: 10px 12px;
    border: 0;
    border-radius: var(--sots-control-radius, 6px);
    background: transparent;
    color: #102a43;
    font: inherit;
    font-size: 14px;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
}

body.sots-operator-page .operator-person-row-menu-scroll > button[role="menuitem"]:hover,
body.sots-operator-page .operator-person-row-menu-scroll > button[role="menuitem"]:focus-visible {
    background: #eef4ff;
    outline: none;
}

body.sots-operator-page .operator-person-row-menu-fold {
    margin: 4px 0 0;
    border: 1px solid #e8eef5;
    border-radius: var(--sots-control-radius, 6px);
    background: #fafbfd;
}

body.sots-operator-page .operator-person-row-menu-fold > summary {
    padding: 9px 10px;
    font-size: 13px;
    font-weight: 650;
    color: var(--sots-primary, #0b3d6e);
    cursor: pointer;
    list-style: none;
}

body.sots-operator-page .operator-person-row-menu-fold > summary::-webkit-details-marker {
    display: none;
}

body.sots-operator-page .operator-person-row-menu-fold > summary::before {
    content: '▸ ';
    display: inline-block;
    width: 1em;
}

body.sots-operator-page .operator-person-row-menu-fold[open] > summary::before {
    content: '▾ ';
}

body.sots-operator-page .operator-person-row-menu-fold-body {
    padding: 0 4px 6px;
}

body.sots-operator-page .operator-person-row-menu-fold-body button[role="menuitem"] {
    display: block;
    width: 100%;
    margin: 0;
    padding: 8px 10px;
    border: 0;
    border-radius: var(--sots-control-radius, 6px);
    background: transparent;
    color: #102a43;
    font: inherit;
    font-size: 13px;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
}

body.sots-operator-page .operator-person-row-menu-fold-body button[role="menuitem"]:hover,
body.sots-operator-page .operator-person-row-menu-fold-body button[role="menuitem"]:focus-visible {
    background: #eef4ff;
    outline: none;
}

body.sots-operator-page .operator-person-row-menu[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-person-row-menu > button {
    display: block;
    width: 100%;
    margin: 0;
    padding: 7px 10px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #102a43;
    font: inherit;
    font-size: 13px;
    line-height: 1.25;
    text-align: left;
    cursor: pointer;
}

body.sots-operator-page .operator-person-row-menu > button:hover,
body.sots-operator-page .operator-person-row-menu > button:focus-visible {
    background: #eef4ff;
    outline: none;
}

body.sots-operator-page .operator-person-row-menu-label {
    margin: 4px 10px 2px;
    font-size: 10px;
    font-weight: 750;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #8a97a8;
}

body.sots-operator-page .operator-person-row-menu-sep {
    height: 1px;
    margin: 5px 6px;
    background: #e8eef5;
}

body.sots-operator-page .operator-person-mark-backdrop {
    position: fixed;
    inset: 0;
    z-index: 90;
    border: 0;
    padding: 0;
    margin: 0;
    background: rgba(16, 42, 67, 0.38);
}

body.sots-operator-page .operator-person-mark-backdrop[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-person-mark-menu {
    position: fixed;
    z-index: 91;
    min-width: 200px;
    max-width: min(280px, calc(100vw - 16px));
    padding: 0;
    border: 1px solid #d5dee8;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(16, 42, 67, 0.18);
    display: flex;
    flex-direction: column;
    max-height: min(72vh, 440px);
}

body.sots-operator-page .operator-person-mark-menu[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-person-mark-menu.is-sheet {
    left: 8px !important;
    right: 8px !important;
    bottom: max(8px, env(safe-area-inset-bottom, 0px));
    top: auto !important;
    width: auto;
    max-width: none;
    max-height: min(78vh, 480px);
}

body.sots-operator-page .operator-person-mark-menu-head {
    flex: 0 0 auto;
    padding: 10px 12px 8px;
    font-size: 12px;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--sots-muted, #8a97a8);
    border-bottom: 1px solid #e8eef5;
}

body.sots-operator-page .operator-person-mark-menu-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-y;
    padding: 6px;
}

body.sots-operator-page .operator-person-mark-menu-scroll > button {
    display: block;
    width: 100%;
    margin: 0;
    padding: 10px 12px;
    border: 0;
    border-radius: var(--sots-control-radius, 6px);
    background: transparent;
    color: #102a43;
    font: inherit;
    font-size: 14px;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
}

body.sots-operator-page .operator-person-mark-menu-scroll > button.is-current {
    background: var(--sots-primary-soft, #eef4fb);
    color: var(--sots-primary, #0b3d6e);
    font-weight: 650;
}

body.sots-operator-page .operator-person-mark-menu-scroll > button:hover,
body.sots-operator-page .operator-person-mark-menu-scroll > button:focus-visible {
    background: #eef4ff;
    outline: none;
}

body.sots-operator-page .operator-person-mark-menu-scroll > .operator-person-mark-clear {
    margin-top: 4px;
    border-top: 1px solid #e8eef5;
    border-radius: 0 0 6px 6px;
    color: var(--sots-muted, #667788);
}

body.sots-operator-page .operator-thread-note-block {
    margin: 0 0 6px;
}

body.sots-operator-page .operator-thread-note-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #8a97a8;
}

body.sots-operator-page .operator-thread-note-block pre {
    margin: 2px 0 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #102a43;
    font: inherit;
    font-size: 12px;
    line-height: 1.35;
    white-space: pre-wrap;
    word-break: break-word;
}

body.sots-operator-page .operator-thread-notes-empty {
    margin: 0;
    font-size: 12px;
    line-height: 1.35;
    color: #687789;
}
body.sots-operator-page .operator-contact-category-bar[hidden] {
    display: none !important;
}
body.sots-operator-page .operator-contact-category-field {
    display: grid;
    gap: 2px;
    min-width: 132px;
}
body.sots-operator-page .operator-contact-category-field[hidden] {
    display: none !important;
}
body.sots-operator-page .operator-contact-category-kicker {
    font-size: 10px;
    font-weight: 750;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #8a97a8;
}

body.sots-operator-page .operator-category-assign-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
}
body.sots-operator-page .operator-category-assign-row .operator-contact-category-field[hidden] {
    display: none !important;
}
body.sots-operator-page .operator-category-assign-hint {
    margin-top: 6px;
    font-size: 12px;
    color: #687789;
}
body.sots-operator-page .relationship-category-select {
    min-width: 148px;
    max-width: 100%;
    font: inherit;
    font-size: 13px;
    border: 1px solid #d5dde7;
    border-radius: 4px;
    padding: 5px 8px;
    background: #fff;
}

body.sots-operator-page .operator-passkey-banner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 0 0 10px;
    padding: 10px 12px;
    border: 1px solid #d5deea;
    border-radius: 12px;
    background: #f4f8fc;
}

body.sots-operator-page .operator-passkey-banner[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-passkey-banner-text {
    flex: 1 1 220px;
    font-size: 13px;
    color: #35506b;
    line-height: 1.35;
}

body.sots-operator-page .person-tag {
    display: inline-block;
    font-size: 10px;
    font-weight: 650;
    padding: 1px 6px;
    border-radius: 4px;
    background: #eef3f8;
    color: #35506b;
}

body.sots-operator-page .person-source {
    margin-top: 1px;
    font-size: 10px;
    font-weight: 650;
    line-height: 1.35;
    color: #7a8b9c;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.sots-operator-page .person-owner-line {
    width: fit-content;
    max-width: 100%;
    margin-top: 2px;
    padding: 1px 5px;
    border-radius: 999px;
    background: #e8f0fb;
    color: #174ea6;
    font-size: 10px;
    font-weight: 750;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.sots-operator-page .person-actions-row {
    display: flex;
    gap: 8px;
    margin-top: 3px;
}

body.sots-operator-page .person-inline-action {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #3d6a9a;
    font: inherit;
    font-size: 10px;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

body.sots-operator-page .person-head-removal-row-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0 0 4px;
}

body.sots-operator-page .relationship-source-pill {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    border-radius: 4px;
    background: #eef3f9;
    color: #40566d;
    font-size: 10px;
    font-weight: 700;
}

body.sots-operator-page .person-time {
    grid-column: 2;
    justify-self: end;
    max-width: 100%;
    min-width: 0;
    font-size: 10px;
    font-weight: 500;
    line-height: 1.25;
    color: var(--op-muted, #5f7488);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: right;
    margin: 0;
    font-variant-numeric: tabular-nums;
}

body.sots-operator-page .ticket.unread .person-time {
    font-weight: 500;
    color: #40566d;
}

body.sots-operator-page .ticket.unread .ticket-card-shell.person-row {
    --person-trail: 7.5rem;
}

body.sots-operator-page .person-last-use {
    margin-top: 0;
    display: flex;
    flex-direction: column;
    gap: var(--person-meta-row-gap);
    font-size: 11px;
    font-weight: 500;
    line-height: var(--person-meta-line-height);
    color: #5f7488;
}

body.sots-operator-page .person-last-use-line {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0;
    min-width: 0;
    min-height: 19px;
    line-height: var(--person-meta-line-height);
}

body.sots-operator-page .person-last-use-line .person-default-phone,
body.sots-operator-page .person-last-use-line .person-last-use-phone,
body.sots-operator-page .person-last-use-line .person-last-use-empty,
body.sots-operator-page .person-last-use-line .person-last-use-label,
body.sots-operator-page .person-last-use-line .person-last-use-dirs,
body.sots-operator-page .person-last-use-line .person-last-use-at,
body.sots-operator-page .person-last-use-line .person-last-use-ch {
    flex: 0 0 auto;
    min-width: 0;
}

body.sots-operator-page .person-last-use-mid {
    display: contents;
}

body.sots-operator-page .person-last-use-line .person-default-phone,
body.sots-operator-page .person-last-use-line .person-last-use-phone,
body.sots-operator-page .person-last-use-line .person-last-use-empty,
body.sots-operator-page .person-last-use-line .person-last-use-dirs,
body.sots-operator-page .person-last-use-line .person-last-use-label,
body.sots-operator-page .person-last-use-line .person-last-use-at,
body.sots-operator-page .person-last-use-line .person-last-use-ch-txt,
body.sots-operator-page .person-contact-method-value,
body.sots-operator-page .person-contact-method .person-default-phone,
body.sots-operator-page .person-contact-label-btn {
    font: inherit;
    color: inherit;
}

body.sots-operator-page .person-last-use-phone {
    display: inline-block;
    max-width: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.sots-operator-page .person-last-use-at {
    flex: 0 0 auto;
    min-width: 0;
    text-align: left;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

body.sots-operator-page .person-last-use-at.is-empty {
    min-width: 0;
}

body.sots-operator-page .person-last-use-call {
    appearance: none;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 3px;
    background: transparent;
    color: inherit;
    cursor: pointer;
}

body.sots-operator-page .person-last-use-call svg {
    width: 12px;
    height: 12px;
    display: block;
}

body.sots-operator-page .person-last-use-call:hover {
    background: #eef5ff;
}

body.sots-operator-page .person-last-use-line.is-in .person-last-use-dirs,
body.sots-operator-page .person-last-use-line.is-out .person-last-use-dirs,
body.sots-operator-page .person-last-use-line.is-origin .person-last-use-dirs,
body.sots-operator-page .person-last-use-dirs {
    flex: 0 0 auto;
    min-width: 0;
    letter-spacing: 0.01em;
    white-space: nowrap;
    text-transform: uppercase;
}

body.sots-operator-page .person-last-use-ch {
    flex: 0 0 auto;
    width: auto;
    height: 12px;
    margin-left: 0;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 2px;
    color: inherit;
}

body.sots-operator-page .person-last-use-ch.is-sms,
body.sots-operator-page .person-last-use-ch.is-call {
    color: inherit;
}

body.sots-operator-page .person-last-use-ch.is-empty {
    width: 0;
    height: 12px;
    margin: 0;
    overflow: hidden;
}

body.sots-operator-page .person-last-use-ch svg {
    width: 12px;
    height: 12px;
    display: block;
    flex: 0 0 12px;
}

body.sots-operator-page .person-last-use-ch-txt {
    letter-spacing: 0.01em;
    line-height: 1;
    text-transform: uppercase;
}

body.sots-operator-page .person-last-use-label {
    flex: 0 1 auto;
    min-width: 0;
    max-width: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.sots-operator-page .person-preview-row {
    display: flex;
    align-items: baseline;
    gap: 5px;
    margin-top: 1px;
    min-width: 0;
}

body.sots-operator-page .person-channel {
    flex: 0 0 auto;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    color: #7a8b9c;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

body.sots-operator-page a.person-call-recording {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 18px;
    padding: 0 5px;
    border-radius: var(--sots-control-radius, 6px);
    border: 1px solid var(--sots-primary, #0b3d6e);
    background: var(--sots-primary-soft, #e8f0fa);
    color: var(--sots-primary, #0b3d6e);
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    letter-spacing: 0.02em;
}

body.sots-operator-page a.person-call-recording:hover {
    background: #dceaf8;
}

body.sots-operator-page .conversation-title .conversation-call-recording {
    margin-left: 2px;
    min-width: 24px;
    height: 20px;
    font-size: 10px;
    cursor: pointer;
}

body.sots-operator-page button.person-call-recording {
    appearance: none;
    font-family: inherit;
    margin: 0;
}

body.sots-operator-page .operator-contact-recordings-modal {
    z-index: 36000;
}

body.sots-operator-page .operator-contact-recordings-card {
    width: min(640px, calc(100vw - 32px));
    max-height: min(85vh, 720px);
    display: flex;
    flex-direction: column;
}

body.sots-operator-page .operator-contact-recordings-list {
    overflow: auto;
    flex: 1 1 auto;
    min-height: 120px;
    max-height: min(60vh, 520px);
    margin: 0;
    padding: 0;
}

body.sots-operator-page .operator-contact-recordings-empty {
    margin: 12px 0;
    font-size: 13px;
    color: var(--op-muted, #5f7488);
}

body.sots-operator-page .operator-contact-rec-row {
    padding: 10px 0;
    border-bottom: 1px solid var(--op-border-soft, rgba(16, 42, 67, 0.08));
}

body.sots-operator-page .operator-contact-rec-meta {
    font-size: 13px;
    font-weight: 600;
    color: var(--op-ink, #102a43);
}

body.sots-operator-page .operator-contact-rec-nums {
    margin-top: 4px;
    font-size: 12px;
    color: var(--op-muted, #5f7488);
}

body.sots-operator-page .operator-contact-rec-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
}

body.sots-operator-page .operator-contact-rec-audio {
    width: min(100%, 320px);
    height: 32px;
}

body.sots-operator-page .operator-contact-rec-muted {
    font-size: 12px;
    color: var(--op-muted, #5f7488);
}

body.sots-operator-page .operator-contact-rec-keep-wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
}

body.sots-operator-page .operator-contact-rec-keep-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: var(--sots-control-font, 12px);
    color: var(--op-ink, #102a43);
    margin: 0;
}

body.sots-operator-page .operator-contact-rec-keep-note {
    flex: 1 1 180px;
    min-width: 140px;
    height: var(--sots-control-h, 24px);
    padding: 0 var(--sots-control-pad-x, 8px);
    font-size: var(--sots-control-font, 12px);
    border: 1px solid var(--sots-border, rgba(16, 42, 67, 0.15));
    border-radius: var(--sots-control-radius, 6px);
}

body.sots-operator-page .operator-contact-rec-keep-status {
    font-size: 11px;
    color: var(--op-muted, #5f7488);
    margin-left: auto;
}

body.sots-operator-page .operator-contact-recordings-frame-wrap {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 200px;
    max-height: min(55vh, 480px);
}

body.sots-operator-page .operator-contact-recordings-frame-wrap[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-contact-recordings-frame {
    flex: 1 1 auto;
    width: 100%;
    min-height: 240px;
    border: 1px solid var(--op-border-soft, rgba(16, 42, 67, 0.12));
    border-radius: var(--sots-control-radius, 6px);
    background: #fff;
}

body.sots-operator-page .person-list-empty {
    padding: 28px 16px;
    text-align: center;
    color: var(--op-muted, #5f7488);
    font-size: 13px;
}

body.sots-operator-page .person-preview-row {
    flex-wrap: wrap;
}

body.sots-operator-page .person-preview {
    flex: 1 1 auto;
    min-width: 0;
    margin-top: 0;
    font-size: 12px;
    line-height: 1.3;
    color: #5f7488;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.sots-operator-page .person-meta {
    display: none;
}

body.sots-operator-page .person-waiting-inline {
    flex: 0 0 auto;
    font-size: 10px;
    font-weight: 500;
    color: #829ab1;
    white-space: nowrap;
}

body.sots-operator-page .person-waiting-inline.is-mine {
    color: #8a7350;
    font-weight: 600;
}

body.sots-operator-page .person-lane-inline {
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

body.sots-operator-page .person-lane-inline.is-dating {
    color: #5a4580;
}

body.sots-operator-page .person-lane-inline.is-business {
    color: #1f446d;
}

body.sots-operator-page .person-lane-inline.is-mail {
    color: #3d556c;
}

body.sots-operator-page .ticket .unread-badge {
    align-self: center;
    margin: 0;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    font-size: 10px;
}

body.sots-operator-page:not(.is-operator-thread) #smsOperatorLayout > .operator-main .composer,
body.sots-operator-page:not(.is-operator-thread) .composer {
    display: none !important;
}

/* Desktop empty-state pane: same calm shell for All / SMS / Dating. */
@media (min-width: 641px) {
    body.sots-operator-page:not(.is-operator-thread):not(.is-mail-lane):not(.is-contacts-lane) #smsOperatorLayout > .operator-main {
        display: flex !important;
        flex-direction: column !important;
        background: linear-gradient(180deg, #f7fafc 0%, #eef3f8 100%) !important;
    }

    body.sots-operator-page:not(.is-operator-thread):not(.is-mail-lane):not(.is-contacts-lane) #smsOperatorLayout > .operator-main .conversation-header,
    body.sots-operator-page:not(.is-operator-thread):not(.is-mail-lane):not(.is-contacts-lane) #smsOperatorLayout > .operator-main .composer,
    body.sots-operator-page:not(.is-operator-thread):not(.is-mail-lane):not(.is-contacts-lane) #smsOperatorLayout > .operator-main .composer-tools,
    body.sots-operator-page:not(.is-operator-thread):not(.is-mail-lane):not(.is-contacts-lane) #smsOperatorLayout > .operator-main .operator-identity-shell,
    body.sots-operator-page:not(.is-operator-thread):not(.is-mail-lane):not(.is-contacts-lane) #smsOperatorLayout > .operator-main .relationship-detail-shell {
        display: none !important;
    }

    body.sots-operator-page:not(.is-operator-thread) #messagesEmptyState {
        margin: auto;
        padding: 28px 24px;
        max-width: 320px;
        text-align: center;
        color: #5f7488;
        font-size: 14px;
        line-height: 1.45;
        border: 0;
        background: transparent;
    }
}

body.sots-operator-page .person-actions-row {
    opacity: 1;
}

body.sots-operator-page .ticket.is-expanded .person-actions-row {
    opacity: 1;
}

body.sots-operator-page .ticket .person-select-check-wrap,
body.sots-operator-page .ticket .person-select,
body.sots-operator-page .ticket .person-row-menu {
    opacity: 1;
}

body.sots-operator-page .person-select-check-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 2px;
    cursor: pointer;
}

body.sots-operator-page .operator-filter-menu-note {
    margin: 8px 10px 6px;
    padding: 0;
    color: #5f7488;
    font-size: 11px;
    line-height: 1.35;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
}

/* List-as-home: never leave the empty thread pane + "will appear in the list" under people. */
body.sots-operator-page.is-operator-inbox #smsOperatorLayout > .operator-main,
body.sots-operator-page #smsOperatorLayout > .operator-main[hidden] {
    display: none !important;
}

/* Keep Message/Call/Email visible while drafting so From/send choice stays reachable. */

body.sots-operator-page .message-delivery {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
    margin-right: 8px;
    font-size: 11px;
    line-height: 1.2;
    color: var(--op-muted, #5f7488);
}

body.sots-operator-page .message-delivery .delivery-ticks {
    letter-spacing: -0.06em;
    color: #7a8b9c;
}

body.sots-operator-page .message-delivery.is-delivered .delivery-ticks,
body.sots-operator-page .message-delivery.is-read .delivery-ticks {
    color: #2f6fed;
}

body.sots-operator-page .message-delivery.is-failed {
    color: #b42318;
}

body.sots-operator-page .message-delivery .delivery-hint {
    margin-left: 4px;
    font-size: 10px;
    font-weight: 650;
}

body.sots-operator-page .message-delivery .delivery-retry {
    margin-left: 6px;
    padding: 0;
    border: 0;
    background: transparent;
    font: inherit;
    font-size: 11px;
    font-weight: 650;
    color: var(--sots-primary, var(--op-accent, #0b3d6e));
    text-decoration: underline;
    cursor: pointer;
}

body.sots-operator-page .message-delivery .delivery-retry:hover {
    color: var(--sots-primary-dark, #1f446d);
}

body.sots-operator-page .person-body {
    min-width: 0;
}

body.sots-operator-page .person-top {
    display: block;
    min-width: 0;
}

body.sots-operator-page .person-top .person-name {
    min-width: 0;
}

body.sots-operator-page .ticket.unread .person-name {
    font-weight: 700;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-top .person-time {
    display: none !important;
}

body.sots-operator-page .ticket:not(.is-expanded) .person-source {
    display: none !important;
}

body.sots-operator-page .person-preview.is-unread {
    color: var(--op-ink, #102a43);
    font-weight: 650;
}

body.sots-operator-page .person-delivery {
    flex: 0 0 auto;
    font-size: 11px;
    line-height: 1;
    color: #7a8b9c;
    letter-spacing: -0.04em;
}

body.sots-operator-page .person-delivery.is-delivered,
body.sots-operator-page .person-delivery.is-read {
    color: #2f6fed;
}

body.sots-operator-page .person-delivery.is-failed {
    color: #b42318;
}

body.sots-operator-page .person-select {
    display: block;
    position: static;
    z-index: 2;
    width: 16px;
    min-width: 16px;
    height: 16px;
    margin: 0;
    padding: 0;
    accent-color: #2f6fed;
    cursor: pointer;
    justify-self: end;
    align-self: center;
}

body.sots-operator-page .person-row-menu {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: static;
    z-index: 2;
    box-sizing: border-box;
    width: 16px;
    min-width: 16px;
    max-width: 16px;
    height: 16px;
    min-height: 16px;
    max-height: 16px;
    margin: 0;
    padding: 0;
    border: 1px solid #c9d4e0;
    border-radius: 3px;
    background: #fff;
    color: #1f446d;
    font-size: 9px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    cursor: pointer;
    justify-self: end;
    align-self: center;
    appearance: none;
}

body.sots-operator-page .ticket.is-selected .person-select {
    accent-color: #2f6fed;
}

body.sots-operator-page.is-bulk-selecting .person-select,
body.sots-operator-page.is-bulk-selecting .person-row-menu {
    opacity: 1;
}

body.sots-operator-page .relationship-photo-section {
    margin: 0 0 10px;
}

body.sots-operator-page .relationship-photo-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
    align-items: flex-start;
}

body.sots-operator-page .relationship-photo-gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: flex-start;
}

body.sots-operator-page .relationship-contact-photo {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: 10px;
    border: 1px solid #d5dee8;
    background: #f4f7fb;
}

body.sots-operator-page .relationship-photo-controls {
    display: grid;
    gap: 6px;
    min-width: 0;
}

body.sots-operator-page .relationship-photo-extra-remove {
    display: grid;
    gap: 4px;
}

body.sots-operator-page .relationship-photo-status {
    margin: 0;
    font-size: 12px;
    color: #687789;
}

body.sots-operator-page .relationship-photo-remove {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: #40536a;
    cursor: pointer;
}

body.sots-operator-page .ticket-title {
    font-size: 13px;
    line-height: 1.3;
    font-weight: 700;
    color: var(--op-ink, #071b35);
}

body.sots-operator-page .ticket-meta {
    margin-top: 2px;
    font-size: 10px;
    line-height: 1.3;
    color: var(--op-muted, #5f6b7a);
}

body.sots-operator-page .ticket-preview {
    margin-top: 3px;
    font-size: 12px;
    line-height: 1.35;
    color: #40536a;
}

body.sots-operator-page .conversation-header {
    padding: 8px 22px 4px;
    border-bottom: 1px solid var(--op-border-soft, rgba(16, 42, 67, 0.08));
    background: #ffffff;
    min-height: 0;
}

body.sots-operator-page .conversation-title {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--op-ink, #102a43);
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

body.sots-operator-page .conversation-meta {
    margin-top: 1px;
    font-size: 11px;
    color: var(--op-muted, #5f7488);
    white-space: normal;
}

body.sots-operator-page .conversation-contact-categories {
    margin-top: 4px;
    max-width: 100%;
}

body.sots-operator-page .conversation-contact-categories .person-category-row {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
}

body.sots-operator-page.is-operator-thread .conversation-contact-categories:not([hidden]) {
    display: block;
}

body.sots-operator-page .operator-identity-shell:not(.is-editing):not(.is-conflict):not(.is-override) {
    padding-bottom: 0;
}

body.sots-operator-page .operator-identity-summary-number {
    display: block;
    margin-top: 2px;
    font-size: 13px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: #1f446d;
}

body.sots-operator-page .operator-identity-summary-number[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-thread-photo-btn {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    border: 1px solid #d5dee8;
    border-radius: 10px;
    background: #eef3f9;
    overflow: hidden;
    cursor: pointer;
}

body.sots-operator-page .operator-send-from {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid #d5dee8;
    border-radius: 12px;
    background: #f8fafc;
}

body.sots-operator-page .operator-identity-toggle {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 8px;
    background: transparent;
    padding: 0;
}

body.sots-operator-page .operator-identity-button {
    min-height: var(--op-control-h, 24px);
    height: var(--op-control-h, 24px);
    border: 1px solid #c9d4e0;
    border-radius: 5px;
    background: #fff;
    padding: 0 8px;
    font-size: 11px;
}

body.sots-operator-page .operator-reach-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

body.sots-operator-page .operator-reach-btn {
    appearance: none;
    margin: 0;
    padding: 3px 8px;
    min-height: var(--op-control-h, 24px);
    border: 1px solid #c9d4e0;
    border-radius: 5px;
    background: #fff;
    color: #123a63;
    font: inherit;
    font-size: 11px;
    font-weight: 650;
    cursor: pointer;
}

body.sots-operator-page .operator-contact-ways {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0 0 6px;
    padding: 6px 8px;
    border: 1px solid #d5dee8;
    border-radius: 8px;
    background: #fff;
}

body.sots-operator-page .operator-contact-ways[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-ways-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 3px 0;
    min-height: var(--sots-control-h, 24px);
    border-top: 1px solid #eef2f7;
}

body.sots-operator-page .operator-ways-row:first-child {
    border-top: 0;
    padding-top: 0;
}

body.sots-operator-page .operator-thread-section[data-section-key="ways"]:not([open]) {
    border-bottom-width: 0;
}

body.sots-operator-page .operator-contact-category-bar[hidden] + .operator-thread-section[data-section-key="ways"] {
    border-top: 0;
}

body.sots-operator-page .operator-ways-main {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    flex: 1 1 auto;
}

body.sots-operator-page .operator-ways-label-btn {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 42%;
    overflow: hidden;
    padding: 0;
    border: 0;
    background: transparent;
    color: #687789;
    font: inherit;
    font-size: 10px;
    font-weight: 650;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
}

body.sots-operator-page .operator-ways-label-btn:hover,
body.sots-operator-page .operator-ways-label-btn:focus-visible {
    color: #174ea6;
    text-decoration: underline;
    outline: none;
}

body.sots-operator-page .operator-ways-value {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
    font-weight: 700;
    color: #102a43;
}

body.sots-operator-page .composer {
    border-top: 1px solid var(--op-border-soft, rgba(16, 42, 67, 0.08));
    background: #ffffff;
    padding: 0 22px 12px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
}

body.sots-operator-page .composer-resize-handle {
    flex: 0 0 16px;
    height: 16px;
    margin: 0 -22px 8px;
    width: calc(100% + 44px);
    max-width: none;
    border: 0;
    border-bottom: 1px solid #c5d3e4;
    background: #e8eef5;
    cursor: row-resize;
    touch-action: none;
    user-select: none;
    position: relative;
    padding: 0;
    appearance: none;
    -webkit-appearance: none;
}

body.sots-operator-page .composer-resize-handle::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 36px;
    height: 4px;
    margin: -2px 0 0 -18px;
    border-radius: 999px;
    background: repeating-linear-gradient(
        90deg,
        #6b7c8f 0 3px,
        transparent 3px 7px
    );
    pointer-events: none;
}

body.sots-operator-page .composer-resize-handle::after {
    content: 'Drag to expand draft';
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 10px;
    font-weight: 650;
    letter-spacing: 0.02em;
    color: #5f6b7a;
    pointer-events: none;
}

body.sots-operator-page .composer-resize-handle:hover,
body.sots-operator-page .composer-resize-handle:focus-visible,
body.sots-operator-page .composer.is-resizing .composer-resize-handle {
    background-color: #d7e6f7;
    outline: none;
}

body.sots-operator-page .composer.is-resizing {
    cursor: row-resize;
    user-select: none;
}

body.sots-operator-page .composer-tools {
    margin-top: 2px;
    justify-content: flex-end;
}

body.sots-operator-page .composer-row {
    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: flex-end;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

body.sots-operator-page .composer textarea,
body.sots-operator-page .composer-row textarea {
    flex: 1 1 auto;
    border: 1px solid var(--op-border, rgba(16, 42, 67, 0.12));
    border-radius: 6px;
    font-size: 12px;
    line-height: 1.35;
    padding: 6px 8px;
    width: auto;
    max-width: none;
    min-width: 0;
    min-height: 32px;
    max-height: 110px;
    box-sizing: border-box;
    background: #f8fafc;
    box-shadow: none;
}

body.sots-operator-page #messageBox.is-composer-resized {
    height: var(--op-composer-ta-h, 160px) !important;
    min-height: var(--op-composer-ta-h, 160px) !important;
    max-height: none !important;
}

body.sots-operator-page.is-operator-mobile #messageBox:not(.is-composer-resized) {
    min-height: 120px;
    max-height: min(50vh, 280px);
    font-size: 16px;
}

body.sots-operator-page .composer-tools {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
    margin: 0 0 8px;
}

body.sots-operator-page .composer-tools[hidden] {
    display: none !important;
}

body.sots-operator-page .composer-tools button {
    min-height: var(--op-control-h, 24px);
    height: var(--op-control-h, 24px);
    padding: 0 8px;
    border-radius: 5px;
    border: 1px solid rgba(16, 42, 67, 0.12);
    background: #ffffff;
    color: var(--op-ink, #102a43);
    font-size: 11px;
    font-weight: 650;
    box-shadow: none;
}

body.sots-operator-page .composer-tools button:hover {
    background: #eef3f9;
    border-color: rgba(16, 42, 67, 0.18);
}

body.sots-operator-page .composer-row .send-button,
body.sots-operator-page #operatorSendButton {
    position: static;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: auto;
    max-width: none;
    min-width: 0;
    height: 24px;
    min-height: 24px;
    border-radius: 6px;
    padding: 0 8px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
    overflow: visible;
    box-sizing: border-box;
    box-shadow: none;
    transform: none;
}

body.sots-operator-page .composer-row .send-button:hover,
body.sots-operator-page #operatorSendButton:hover {
    transform: none;
    opacity: 0.94;
}

body.sots-operator-page .operator-thread-section {
    margin: 0;
    border-bottom: 1px solid rgba(216, 225, 236, 0.7);
    background: transparent;
}

body.sots-operator-page .operator-thread-section[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-thread-section-summary {
    display: flex;
    align-items: center;
    gap: 6px;
    list-style: none;
    cursor: pointer;
    padding: 5px 12px;
    font-size: 11px;
    font-weight: 600;
    color: #687789;
    user-select: none;
}

body.sots-operator-page .operator-thread-section-summary:hover {
    color: #40536a;
    background: rgba(247, 250, 252, 0.9);
}

body.sots-operator-page .operator-thread-section[open] > .operator-thread-section-summary {
    color: #40536a;
}

body.sots-operator-page .operator-thread-section-summary::-webkit-details-marker {
    display: none;
}

body.sots-operator-page .operator-thread-section-summary .operator-contact-ways-sub {
    font-weight: 500;
    color: #8a9aab;
}

body.sots-operator-page .operator-thread-section-hint {
    margin-left: auto;
    font-size: 10px;
    font-weight: 600;
    color: #9aa8b8;
    letter-spacing: 0.02em;
}

body.sots-operator-page .operator-thread-section-body {
    padding: 0 12px 10px;
    background: #ffffff;
}

body.sots-operator-page .operator-messages-shell {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

body.sots-operator-page .operator-messages-shell > .messages {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

body.sots-operator-page .operator-icon-copy {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    min-width: 28px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: #7a8b9c;
    cursor: pointer;
    opacity: 0.72;
    transition: opacity 120ms ease, background 120ms ease, color 120ms ease, border-color 120ms ease;
}

body.sots-operator-page .operator-icon-copy:hover,
body.sots-operator-page .operator-icon-copy:focus-visible {
    opacity: 1;
    color: #1f446d;
    background: rgba(255, 255, 255, 0.92);
    border-color: rgba(16, 42, 67, 0.12);
    outline: none;
}

body.sots-operator-page .operator-icon-copy.is-copied {
    opacity: 1;
    color: #1a6b45;
    border-color: rgba(26, 107, 69, 0.22);
    background: rgba(232, 247, 239, 0.95);
}

body.sots-operator-page .operator-icon-copy[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-thread-copy-picker {
    position: relative;
    display: inline-flex;
}

body.sots-operator-page .operator-thread-copy-picker[hidden] {
    display: none !important;
}

body.sots-operator-page .operator-thread-copy-picker-summary {
    list-style: none;
    cursor: pointer;
}

body.sots-operator-page .operator-thread-copy-picker-summary::-webkit-details-marker {
    display: none;
}

body.sots-operator-page .operator-thread-copy-picker-summary.is-copied {
    color: #1a6b45;
    border-color: rgba(26, 107, 69, 0.22);
    background: rgba(232, 247, 239, 0.95);
}

body.sots-operator-page .operator-thread-copy-picker-panel {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 40;
    min-width: 168px;
    padding: 4px;
    border: 1px solid var(--sots-border, #d9e2ec);
    border-radius: var(--sots-control-radius, 6px);
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 35, 60, 0.12);
    display: flex;
    flex-direction: column;
    gap: 2px;
}

body.sots-operator-page .operator-thread-copy-picker:not([open]) .operator-thread-copy-picker-panel {
    display: none;
}

body.sots-operator-page .operator-thread-copy-picker-item {
    appearance: none;
    width: 100%;
    text-align: left;
    border: 0;
    border-radius: var(--sots-control-radius, 6px);
    background: transparent;
    color: var(--sots-text, #102a43);
    font-size: var(--sots-control-font, 12px);
    line-height: 1.35;
    padding: 6px 8px;
    cursor: pointer;
}

body.sots-operator-page .operator-thread-copy-picker-item:hover:not(:disabled),
body.sots-operator-page .operator-thread-copy-picker-item:focus-visible:not(:disabled) {
    background: var(--sots-primary-soft, #e8f1fb);
    outline: none;
}

body.sots-operator-page .operator-thread-copy-picker-item:disabled {
    opacity: 0.45;
    cursor: default;
}

body.sots-operator-page .operator-copy-conversation {
    display: none !important;
}

body.sots-operator-page .operator-reply-suggest-trigger {
    position: absolute;
    top: 8px;
    right: 44px;
    z-index: 3;
    background: rgba(255, 255, 255, 0.92);
    border-color: rgba(16, 42, 67, 0.1);
    box-shadow: 0 1px 2px rgba(15, 35, 60, 0.06);
    opacity: 0.85;
}

body.sots-operator-page .operator-messages-shell:hover .operator-copy-conversation,
body.sots-operator-page .operator-copy-conversation:focus-visible,
body.sots-operator-page .operator-copy-conversation.is-copied {
    opacity: 1;
}

body.sots-operator-page .operator-messages-shell:hover .operator-reply-suggest-trigger,
body.sots-operator-page .operator-reply-suggest-trigger:focus-visible {
    opacity: 1;
}

body.sots-operator-page .composer-reply-suggest-composer-btn .composer-reply-suggest-composer-label {
    color: var(--sots-primary, #0b3d6e);
}

body.sots-operator-page #operatorIdentityCopy.operator-icon-copy {
    flex: 0 0 auto;
    align-self: center;
    opacity: 0.55;
}

body.sots-operator-page .operator-connect-bar:hover #operatorIdentityCopy.operator-icon-copy,
body.sots-operator-page #operatorIdentityCopy.operator-icon-copy:focus-visible,
body.sots-operator-page #operatorIdentityCopy.operator-icon-copy.is-copied {
    opacity: 1;
}

body.sots-operator-page .messages {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    gap: 8px;
    padding: 12px 22px 14px;
    background: linear-gradient(180deg, #f8fafc 0%, #eef3f8 100%);
    user-select: text;
    -webkit-user-select: text;
}

body.sots-operator-page .messages .message,
body.sots-operator-page .messages .message-body {
    user-select: text;
    -webkit-user-select: text;
}

/* Boot + hard-refresh restore: content pane stays OpCon-white until the people list is ready. */
html.sots-opcon-booting {
    background: #f6f9fd !important;
}
html.sots-opcon-booting body {
    background: #f6f9fd !important;
}
html.sots-opcon-booting body.sots-operator-page .sots-content.sots-operator-content {
    position: relative;
}
html.sots-opcon-booting body.sots-operator-page .sots-content.sots-operator-content::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 40;
    background: #ffffff;
    pointer-events: none;
}
html.sots-opcon-restoring body.sots-operator-page #smsOperatorLayout > .operator-main,
html.sots-opcon-restoring body.sots-operator-page #commWorkspaceLayout > .operator-main,
html.sots-opcon-restoring body.sots-operator-page #contactsWorkspaceLayout > .operator-main {
    visibility: hidden !important;
}

html.sots-opcon-restoring body.sots-operator-page .operator-main .conversation-header,
html.sots-opcon-restoring body.sots-operator-page .operator-main .operator-thread-pane,
html.sots-opcon-restoring body.sots-operator-page .operator-main .composer,
html.sots-opcon-restoring body.sots-operator-page .operator-main .operator-contact-category-bar,
html.sots-opcon-restoring body.sots-operator-page .operator-main .operator-actions-strip,
html.sots-opcon-restoring body.sots-operator-page .operator-main .operator-thread-section {
    visibility: hidden;
}

body.sots-operator-page .message-sms-alert-meta {
    margin: 0 0 6px;
    padding: 0 0 6px;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

body.sots-operator-page .message-sms-alert-title {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #5f7488;
}

body.sots-operator-page .message-sms-alert-bits {
    margin-top: 2px;
    font-size: 12px;
    color: #334155;
}

body.sots-operator-page .relationship-name-src {
    font-style: normal;
    font-size: 11px;
    color: #64748b;
    font-weight: 400;
}

body.sots-operator-page .operator-name-explain {
    display: grid;
    gap: 8px;
}

body.sots-operator-page .operator-name-explain-showing,
body.sots-operator-page .operator-name-explain-row {
    padding: 6px 8px;
    border: 1px solid var(--op-border-soft, #e8edf5);
    border-radius: 6px;
    background: #f7fafc;
}

body.sots-operator-page .operator-name-explain-kicker {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #687789;
}

body.sots-operator-page .operator-name-explain-role {
    font-size: 10px;
    font-weight: 700;
    color: #40536a;
}

body.sots-operator-page .operator-name-explain-value {
    font-size: 14px;
    font-weight: 650;
    color: #102a43;
}

body.sots-operator-page .operator-name-explain-from {
    margin-top: 2px;
    font-size: 12px;
    color: #5f7488;
}

/* No bottom-anchor spacer — it left a white slab above short threads that looked like a collapsing panel. */
body.sots-operator-page .messages::before {
    content: none;
    display: none;
}

body.sots-operator-page .operator-new-dating-button {
    flex: 0 0 auto;
    width: 32px;
    min-width: 32px;
    height: 32px;
    min-height: 32px;
    border-radius: 999px;
    padding: 0;
    font-size: 18px;
    font-weight: 500;
    line-height: 1;
}

body.sots-operator-page .operator-menu-alert-item.is-enabled {
    color: #1a6b45;
    font-weight: 750;
}

body.sots-operator-page .message {
    max-width: min(62%, 520px);
    width: fit-content;
    margin: 0;
    padding: 9px 12px 7px;
    border-radius: 16px;
    font-size: 12px;
    line-height: 1.4;
    word-break: break-word;
    border: 1px solid transparent;
    box-shadow: 0 1px 2px rgba(15, 35, 60, 0.05);
    display: grid;
    grid-template-columns: 18px 1fr;
    column-gap: 6px;
    align-items: start;
}

body.sots-operator-page .message-select-wrap {
    grid-column: 1;
    margin: 1px 0 0;
    line-height: 1;
}

body.sots-operator-page .message-select-checkbox {
    width: 14px;
    height: 14px;
    margin: 0;
    cursor: pointer;
}

body.sots-operator-page .message.is-message-selected {
    outline: 2px solid rgba(11, 61, 110, 0.28);
    outline-offset: 1px;
}

body.sots-operator-page .message .message-body,
body.sots-operator-page .message .message-badges,
body.sots-operator-page .message .message-delivery,
body.sots-operator-page .message .message-time {
    grid-column: 2;
}

body.sots-operator-page .person-list-misc-notes-block {
    margin: 4px 0 6px;
    padding-right: 4px;
    box-sizing: border-box;
}

body.sots-operator-page .person-list-misc-notes-block.is-misc-collapsed .person-list-misc-notes-body {
    display: none !important;
}

body.sots-operator-page .ticket.is-expanded .person-list-misc-notes-block.is-misc-collapsed .person-list-misc-notes-body,
body.sots-operator-page .ticket.is-expanded .person-mine-misc-notes-block.is-misc-collapsed .person-mine-misc-notes,
body.sots-operator-page .ticket.is-expanded .person-mine-misc-notes-block.is-misc-collapsed [data-mine-misc-save-now] {
    display: none !important;
}

body.sots-operator-page .person-list-misc-notes-block:not(.is-misc-collapsed) .person-mine-misc-preview {
    display: none;
}

body.sots-operator-page .person-list-misc-notes-body {
    margin-top: 4px;
    font-size: 11px;
    line-height: 1.35;
    color: var(--sots-muted, #667788);
    white-space: pre-wrap;
    word-break: break-word;
    max-height: calc(1.35em * 7 + 8px);
    overflow-y: auto;
}

body.sots-operator-page .person-google-notes {
    margin: 4px 0 6px;
    padding-right: 4px;
    font-size: 11px;
    line-height: 1.35;
    color: var(--sots-muted, #667788);
    white-space: pre-wrap;
    word-break: break-word;
}

body.sots-operator-page .person-google-notes-kicker {
    font-weight: 700;
    color: var(--op-muted, #5f7488);
}

body.sots-operator-page .message .message-body {
    color: inherit;
    white-space: pre-wrap;
}

body.sots-operator-page .message .message-text-body {
    display: block;
    white-space: pre-wrap;
}

body.sots-operator-page .message-empty-body {
    color: #7a8b9c;
    font-style: italic;
}

body.sots-operator-page .message.grouped {
    margin-top: -2px;
}

body.sots-operator-page .message.inbound {
    margin-right: auto;
    align-self: flex-start;
    border-bottom-left-radius: 6px;
    background: #ffffff;
    border-color: rgba(16, 42, 67, 0.09);
    color: #102a43;
}

body.sots-operator-page .message.outbound {
    margin-left: auto;
    align-self: flex-end;
    border-bottom-right-radius: 6px;
    background: #cfe0f4;
    border-color: rgba(32, 76, 130, 0.16);
    color: #102a43;
}

body.sots-operator-page .message-time,
body.sots-operator-page .message-badges {
    margin-top: 5px;
    font-size: 11px;
    color: #6b7f93;
    letter-spacing: 0;
    text-transform: none;
}

body.sots-operator-page .message-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

body.sots-operator-page .message.voice-event {
    max-width: min(100%, 520px);
    width: auto;
    box-sizing: border-box;
    padding: 11px 13px;
    border-radius: 12px;
    border: 1px solid rgba(31, 68, 109, 0.12);
    border-left: 3px solid #3d6a9a;
    background: linear-gradient(180deg, #f8fbfe 0%, #f2f6fb 100%);
    color: var(--op-ink, #102a43);
}

body.sots-operator-page .message.voice-event .voice-event-title {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 10px;
    font-size: 14px;
    font-weight: 750;
    letter-spacing: -0.015em;
    margin-bottom: 8px;
    color: var(--op-ink, #102a43);
}

body.sots-operator-page .message.voice-event .voice-event-pill {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    background: rgba(31, 68, 109, 0.08);
    color: #1f446d;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}

body.sots-operator-page .message.voice-event .voice-event-pill.is-completed {
    background: #eef8f2;
    color: #1a6b45;
}

body.sots-operator-page .message.voice-event .voice-event-pill.is-missed {
    background: #f8eeee;
    color: #8a3b3b;
}

body.sots-operator-page .message.voice-event .voice-event-meta {
    display: grid;
    gap: 4px;
    font-size: 13px;
    color: #40566d;
    line-height: 1.4;
}

body.sots-operator-page .message.voice-event .voice-kv {
    display: grid;
    grid-template-columns: 4.75rem minmax(0, 1fr);
    gap: 2px 10px;
    align-items: baseline;
}

body.sots-operator-page .message.voice-event .voice-kv span:first-child {
    color: var(--op-muted, #5f7488);
    font-size: 12px;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
}

body.sots-operator-page .message.voice-event .voice-listen {
    margin-top: 10px;
}

body.sots-operator-page .message.note-event {
    border: 1px solid rgba(16, 42, 67, 0.08);
    border-left: 3px solid #8a94a3;
    background: #f5f6f8;
    font-style: italic;
    color: #40566d;
}

body.sots-operator-page .message-badge.is-media-ok {
    color: #1a6b45;
    border-color: rgba(26, 107, 69, 0.25);
    background: rgba(232, 247, 239, 0.92);
}

body.sots-operator-page .message-badge.is-media-miss {
    color: #8a4b00;
    border-color: rgba(138, 75, 0, 0.28);
    background: rgba(255, 244, 229, 0.95);
}

body.sots-operator-page .message-badge {
    padding: 1px 6px;
    border-radius: 4px;
    background: rgba(15, 35, 60, 0.05);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-transform: lowercase;
    color: #5f7488;
}

body.sots-operator-page .empty,
body.sots-operator-page .cw-empty-list {
    color: var(--op-muted, #5f6b7a);
    font-size: 14px;
    font-weight: 550;
    line-height: 1.5;
    max-width: 28rem;
    margin: 28px 8px;
}

body.sots-operator-page #messagesEmptyState {
    margin: 48px auto;
    text-align: center;
    color: #607284;
}

body.sots-operator-page #cwCapabilities,
body.sots-operator-page #cwActionsToolbar {
    display: none !important;
}

body.sots-operator-page .cw-side-panels {
    background: var(--op-soft, #f8fafc);
    border-left: 1px solid var(--op-border, #d8e1ec);
    padding: 10px;
    gap: 6px;
}

body.sots-operator-page .cw-panel {
    border: 1px solid var(--op-border-soft, #e8edf5);
    border-radius: 6px;
    background: #ffffff;
    box-shadow: none;
    padding: 10px;
}

body.sots-operator-page .cw-panel-title {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--op-muted, #5f6b7a);
}

body.sots-operator-page .cw-conversation-item {
    padding: 10px 12px;
    border-bottom: 1px solid var(--op-border-soft, #e8edf5);
}

body.sots-operator-page .cw-conversation-item:hover,
body.sots-operator-page .cw-conversation-item.is-active {
    background: #eef5ff;
}

body.sots-operator-page .cw-message {
    border: 0;
    box-shadow: none;
    background: #f1f5f9;
    border-radius: 10px;
}

body.sots-operator-page .cw-message.is-outbound {
    background: #e7f0fb;
}

body.sots-operator-page .operator-menu-label {
    padding: 8px 10px 3px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #8a97a8;
}

/* =========================================================
   MOBILE / COMMUNICATION BREAKPOINT
========================================================= */

@media (max-width: 960px) {

    body.sots-operator-page .operator-layout {
        grid-template-columns: minmax(280px, 42vw) minmax(0, 1fr);
        grid-template-rows: 1fr;
        overflow: hidden;
    }

    .operator-main,
    .operator-sidebar {
        min-height: 0;
    }

    .operator-panel-header,
    .search-wrap,
    .operator-bulk-toolbar {
        padding-top: 7px !important;
        padding-bottom: 7px !important;
    }
}

/* People list is the home screen until a conversation is open — phones only. */
@media (max-width: 640px) {

    body.sots-operator-page .operator-view-bar {
        flex-wrap: wrap;
        justify-content: stretch;
        padding: 6px 8px;
        gap: 6px;
    }

    body.sots-operator-page .operator-view-nav {
        width: 100%;
        gap: 6px 8px;
    }

    body.sots-operator-page .operator-view-primary {
        flex: 1 1 auto;
        width: 100%;
    }

    body.sots-operator-page .operator-view-primary > .operator-lane-button,
    body.sots-operator-page .operator-other-wrap {
        flex: 1 1 0;
        min-width: 0;
    }

    body.sots-operator-page .operator-other-wrap > .operator-lane-button {
        width: 100%;
    }

    body.sots-operator-page .operator-view-bar .operator-lane-toggle {
        display: flex;
        flex: 1 1 auto;
        max-width: none;
        width: 100%;
        order: 0;
    }

    body.sots-operator-page .operator-lane-button {
        flex: 1 1 0;
        padding: 0 6px;
        min-width: 0;
    }

    body.sots-operator-page .operator-other-panel {
        left: auto;
        right: 0;
        min-width: min(260px, 86vw);
    }

    body.sots-operator-page .operator-view-bar-actions {
        display: none;
    }

    body.sots-operator-page .operator-identity-shell {
        padding-left: 42px;
    }

    html,
    body.sots-operator-page,
    body.sots-operator-page .sots-shell {
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        touch-action: pan-x pan-y pinch-zoom;
    }

    body.sots-operator-page .sots-nav,
    body.sots-operator-page .sots-subnav {
        display: none;
    }

    body.sots-operator-page .sots-content.sots-operator-content {
        padding: 0;
    }

    body.sots-operator-page .operator-layout {
        display: flex !important;
        flex-direction: column;
        position: relative;
        width: 100%;
        height: 100%;
        min-height: 0;
        overflow: hidden;
        grid-template-columns: none !important;
    }

    /* Never let layout chrome resurrect a hidden Mail/SMS shell. */
    body.sots-operator-page .operator-layout[hidden],
    body.sots-operator-page #smsOperatorLayout[hidden],
    body.sots-operator-page #commWorkspaceLayout[hidden],
    body.sots-operator-page .cw-layout[hidden] {
        display: none !important;
    }

    body.sots-operator-page:not(.is-operator-thread):not(.is-mail-lane) #smsOperatorLayout > .operator-sidebar {
        position: relative !important;
        z-index: 1;
        inset: auto !important;
        flex: 1 1 auto;
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
        min-height: 0;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        transform: none !important;
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }

    body.sots-operator-page:not(.is-operator-thread):not(.is-mail-lane) #smsOperatorLayout > .operator-sidebar .operator-list-stack {
        flex: 1 1 auto;
        min-height: 0;
        display: flex;
        flex-direction: column;
        position: relative;
    }

    body.sots-operator-page:not(.is-operator-thread):not(.is-mail-lane) #smsOperatorLayout > .operator-sidebar .operator-list {
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Phone people home: keep bulk Actions compact so the list dominates. */
    body.sots-operator-page.is-operator-mobile .operator-list-context {
        padding: 4px 6px;
        gap: 6px;
        flex-wrap: wrap;
    }

    body.sots-operator-page.is-operator-mobile .operator-list-context-kicker {
        display: block;
        width: auto;
    }

    body.sots-operator-page.is-operator-mobile .operator-list-context-select {
        min-height: 28px;
        height: 28px;
        font-size: 13px;
        min-width: 12rem;
    }

    body.sots-operator-page.is-operator-mobile .operator-campaign-picker-cluster .operator-campaign-picker-select {
        min-width: 9rem;
    }

    body.sots-operator-page.is-operator-mobile .operator-campaign-picker-cluster .operator-campaign-work-btn,
    body.sots-operator-page.is-operator-mobile .operator-campaign-picker-cluster .operator-head-removal-brief-reopen {
        height: 28px;
        min-height: 28px;
        padding: 0 8px;
        font-size: 11px;
        min-width: 2.75rem;
    }

    body.sots-operator-page.is-operator-mobile .operator-campaign-category-kicker-text {
        font-size: 8px;
        line-height: 1.05;
    }

    body.sots-operator-page.is-operator-mobile .operator-active-campaign-panel {
        padding: 6px 8px;
    }

    body.sots-operator-page.is-operator-mobile .operator-active-campaign-desc {
        font-size: 11px;
    }

    body.sots-operator-page.is-operator-mobile .operator-active-campaign-meta {
        font-size: 11px;
    }

    body.sots-operator-page.is-operator-mobile .operator-campaign-work-status {
        flex: 1 1 100%;
        max-width: none;
        font-size: 11px;
        line-height: 1.3;
        white-space: normal;
    }

    body.sots-operator-page.is-operator-mobile .search-wrap {
        padding: 4px 6px;
        gap: 4px;
    }

    body.sots-operator-page.is-operator-mobile .search-wrap input {
        min-height: 24px;
        height: 24px;
        font-size: 12px;
        padding: 0 8px;
    }

    body.sots-operator-page.is-operator-mobile .operator-google-sync-status {
        max-width: 7.5rem;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    body.sots-operator-page.is-operator-mobile .operator-bulk-toolbar {
        padding: 3px 6px 4px !important;
        position: sticky;
        top: 0;
        z-index: 5;
    }

    body.sots-operator-page.is-operator-mobile .operator-bulk-toolbar-row {
        flex-wrap: wrap;
        gap: 3px 4px;
    }

    body.sots-operator-page.is-operator-mobile .operator-bulk-toolbar.is-empty-selection .operator-bulk-actions-select,
    body.sots-operator-page.is-operator-mobile .operator-bulk-toolbar.is-empty-selection .operator-bulk-btn {
        display: none;
    }

    body.sots-operator-page.is-operator-mobile .operator-bulk-toolbar:not(.is-empty-selection) .operator-bulk-mark-strip {
        display: inline-flex;
        order: 3;
        width: 100%;
        justify-content: flex-start;
        padding-top: 2px;
    }

    body.sots-operator-page.is-operator-mobile .operator-bulk-mark-btn,
    body.sots-operator-page.is-operator-mobile .operator-bulk-sms-btn {
        min-width: 28px;
        height: 28px;
        font-size: 13px;
    }

    /* Dense rows, but a real finger target for select / row menu. */
    body.sots-operator-page.is-operator-mobile .person-row-trailing {
        gap: 2px;
        align-items: center;
    }

    body.sots-operator-page.is-operator-mobile .ticket-card-shell.person-row {
        --person-trail: 5.75rem;
    }

    body.sots-operator-page.is-operator-mobile .person-select-check-wrap {
        box-sizing: border-box;
        min-width: 40px;
        min-height: 40px;
        margin: -10px -2px -10px 0;
        padding: 0;
    }

    body.sots-operator-page.is-operator-mobile .person-select {
        width: 20px;
        min-width: 20px;
        height: 20px;
    }

    body.sots-operator-page.is-operator-mobile .person-row-menu {
        box-sizing: border-box;
        width: 28px;
        min-width: 28px;
        max-width: 28px;
        height: 28px;
        min-height: 28px;
        max-height: 28px;
        margin: -6px 0;
        font-size: 11px;
        border-radius: 5px;
    }

    body.sots-operator-page.is-operator-mobile .person-identity-info {
        width: 18px;
        height: 18px;
        margin-left: 2px;
        border-color: var(--sots-border, #d9e2ec);
        background: transparent;
        color: var(--sots-muted, #5b6b7c);
        font: 650 11px/18px Arial, Helvetica, sans-serif;
    }

    /* Thread: reclaim vertical space for messages. */
    body.sots-operator-page.is-operator-mobile.is-operator-thread > .sots-topbar {
        display: none !important;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .conversation-header {
        padding: 2px 8px 0;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .conversation-title-row {
        margin-bottom: 0;
        gap: 6px;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-thread-saved-link {
        display: inline-flex;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .conversation-title {
        font-size: 14px;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .conversation-meta {
        display: none !important;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-quick-actions {
        padding: 2px 0 0;
        gap: 4px;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread #copyIdentityCardButton {
        display: none !important;
    }

    body.sots-operator-page .operator-empty-sync {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 10px;
        padding: 24px 16px;
        text-align: center;
        min-height: 120px;
    }

    body.sots-operator-page .operator-empty-sync p {
        margin: 0;
        color: var(--sots-muted, #5b6775);
        font-size: 13px;
        line-height: 1.4;
        max-width: 280px;
    }

    body.sots-operator-page .operator-empty-sync-btn {
        min-height: 36px;
        padding: 8px 16px;
        font-size: 13px;
        font-weight: 700;
    }

    body.sots-operator-page .operator-empty-sync-hint {
        font-size: 11px !important;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-contact-category-bar {
        padding: 2px 8px 3px;
        gap: 6px;
        align-items: center;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-contact-category-bar > .operator-thread-section:not([open]) {
        flex: 0 0 auto;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-contact-category-bar > .operator-thread-section:not([open]) .operator-thread-section-summary {
        padding: 2px 6px;
        gap: 0;
        border: 1px solid #d5dee8;
        border-radius: 5px;
        min-height: 26px;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-contact-category-bar > .operator-thread-section:not([open]) .operator-thread-section-summary > span:first-child {
        font-size: 11px;
        font-weight: 700;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-contact-category-bar > .operator-thread-section:not([open]) .operator-thread-section-hint {
        display: none;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-gender-toggle {
        padding-top: 0;
        gap: 0;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-gender-toggle .operator-contact-category-kicker {
        display: none;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-gender-btn {
        min-width: 26px;
        height: 26px;
        padding: 0 6px;
        border-radius: 5px;
        font-size: 11px;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-actions-strip .operator-connect-bar {
        padding: 4px 8px 5px;
        gap: 4px 6px;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-connect-primary,
    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-connect-secondary {
        min-height: 22px;
        height: 22px;
        padding: 0 7px;
        font-size: 10px;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-from-chip {
        min-height: 22px;
        padding: 1px 16px 1px 6px;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-identity-label {
        font-size: 8px;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-identity-summary-text {
        font-size: 10px;
        font-weight: 700;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-identity-summary-number {
        display: inline !important;
        font-size: 9px;
        font-weight: 650;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread #operatorWaysSection:not([open]) {
        display: none !important;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread #operatorWaysSection[open] .operator-thread-section-body {
        max-height: 34vh;
        overflow: auto;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .relationship-detail-shell:not([open]) {
        display: none !important;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .composer {
        padding: 0 6px 4px;
        padding-bottom: calc(4px + env(safe-area-inset-bottom, 0px));
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .composer.is-saved-open .composer-resize-handle {
        display: none !important;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .composer-resize-handle::after {
        content: '';
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .composer-tools {
        margin: 0 0 2px;
        gap: 3px;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .composer-tools button {
        min-height: 22px;
        height: 22px;
        padding: 0 6px;
        font-size: 10px;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .composer-clip-toggle {
        width: 24px;
        min-width: 24px;
        height: 24px;
        min-height: 24px;
        border-radius: 5px;
        font-size: 11px;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .composer-clip-tray {
        margin: 0 0 3px;
        padding: 5px;
        border-radius: 8px;
        background: #e8eef5;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .composer-clip-list {
        max-height: min(28vh, 168px);
        gap: 3px;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .composer.is-saved-open .composer-resize-handle {
        display: none;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .composer-clip-card-main {
        height: var(--sots-control-h, 24px);
        min-height: var(--sots-control-h, 24px);
        padding: 0 var(--sots-control-pad-x, 8px);
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .composer-clip-card-pin,
    body.sots-operator-page.is-operator-mobile.is-operator-thread .composer-clip-card-edit {
        height: var(--sots-control-h, 24px);
        min-height: var(--sots-control-h, 24px);
        font-size: var(--sots-control-font, 12px);
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .messages {
        flex: 1 1 auto;
        min-height: 0;
        padding: 6px 10px 8px;
        gap: 6px;
        overscroll-behavior: contain;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .message {
        max-width: 92%;
        padding: 8px 11px 7px;
        border-radius: 14px;
        font-size: 15px;
        line-height: 1.45;
    }

    /* Phone thread: read and reply like a normal text app. */
    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-contact-category-bar {
        display: none !important;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-actions-strip:not(:has(.is-editing)) {
        display: none !important;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-actions-strip:has(.is-editing) .operator-from-chip,
    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-actions-strip:has(.is-editing) .operator-to-chip,
    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-actions-strip:has(.is-editing) .operator-inbound-to-row,
    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-actions-strip:has(.is-editing) .operator-rcs-row {
        display: none !important;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .conversation-meta {
        white-space: normal;
        line-height: 1.3;
        overflow: visible;
        text-overflow: unset;
        cursor: pointer;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .conversation-header-actions #simulateInboundButton,
    body.sots-operator-page.is-operator-mobile.is-operator-thread .conversation-header-actions #renameConversationPersonButton,
    body.sots-operator-page.is-operator-mobile.is-operator-thread .conversation-header-actions #copyIdentityCardButton,
    body.sots-operator-page.is-operator-mobile.is-operator-thread .conversation-header-actions .operator-thread-refresh,
    body.sots-operator-page.is-operator-mobile.is-operator-thread .conversation-header-actions .operator-thread-saved-link {
        display: none !important;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .conversation-header-actions #syncPhoneSmsButton,
    body.sots-operator-page.is-operator-mobile.is-operator-thread .conversation-header-actions #saveConversationGoogleButton,
    body.sots-operator-page.is-operator-mobile.is-operator-thread .conversation-header-actions #operatorThreadCopyPicker {
        display: inline-flex !important;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-copy-conversation {
        display: none !important;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-connect-actions {
        display: none !important;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-actions-strip {
        margin: 0;
        padding: 0 8px 2px;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-thread-pane {
        flex: 1 1 auto;
        min-height: 0;
        display: flex;
        flex-direction: column;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .composer-row .send-button,
    body.sots-operator-page.is-operator-mobile.is-operator-thread #operatorSendButton {
        min-height: 40px;
        height: 40px;
        padding: 0 14px;
        font-size: 14px;
        font-weight: 700;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .composer textarea,
    body.sots-operator-page.is-operator-mobile.is-operator-thread .composer-row textarea {
        min-height: 44px;
        max-height: 38vh;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .message-sms-alert-meta {
        display: none !important;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .message-time,
    body.sots-operator-page.is-operator-mobile.is-operator-thread .message-badges,
    body.sots-operator-page.is-operator-mobile.is-operator-thread .message-delivery {
        margin-top: 2px;
        font-size: 10px;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread .operator-actions-strip .operator-connect-bar {
        padding: 2px 6px 3px;
    }

    body.sots-operator-page.is-operator-mobile .operator-bulk-check span {
        font-size: 11px;
    }

    body.sots-operator-page.is-operator-mobile .operator-bulk-count {
        font-size: 11px;
    }

    body.sots-operator-page.is-operator-mobile .person-time {
        max-width: 38%;
        font-size: 9px;
    }

    body.sots-operator-page.is-operator-mobile .operator-list-filters {
        padding: 2px 6px 4px;
        gap: 4px;
    }

    body.sots-operator-page.is-operator-mobile .operator-filter-menu-button {
        padding: 3px 8px;
        font-size: 11px;
        border-radius: 6px;
        min-height: 22px;
    }

    body.sots-operator-page.is-operator-mobile .operator-filter-menu-current {
        font-size: 11px;
    }

    body.sots-operator-page:not(.is-operator-thread):not(.is-mail-lane) #smsOperatorLayout > .operator-main {
        display: none !important;
    }

    body.sots-operator-page:not(.is-operator-thread):not(.is-mail-lane) .operator-mobile-backdrop {
        display: none !important;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread #smsOperatorLayout > .operator-sidebar {
        position: fixed;
        z-index: 90;
        top: 0;
        bottom: 0;
        left: 0;
        width: min(92vw, 380px);
        height: 100dvh;
        max-width: 100%;
        border: 0;
        border-right: 1px solid var(--sots-border);
        border-radius: 0;
        box-shadow: 18px 0 34px rgba(15,23,42,.16);
        transform: translateX(-105%);
        transition: none;
        overflow: hidden;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread #smsOperatorLayout > .operator-sidebar.is-open {
        transform: translateX(0);
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread #smsOperatorLayout > .operator-sidebar:not(.is-open) {
        pointer-events: none;
    }

    body.sots-operator-page.is-operator-mobile.is-operator-thread #smsOperatorLayout > .operator-main {
        display: flex !important;
        width: 100%;
        height: 100%;
        min-height: 0;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    body.sots-operator-page .conversation-title {
        font-size: 15px;
    }

    body.sots-operator-page .conversation-meta {
        font-size: 11px;
    }

    body.sots-operator-page .ticket-card-shell.person-row {
        padding: 5px 10px;
        gap: 6px 8px;
        grid-template-columns: 28px minmax(0, 1fr) auto;
    }

    body.sots-operator-page .person-avatar {
        width: 28px;
        height: 28px;
        font-size: 10px;
    }

    body.sots-operator-page .person-name {
        font-size: 14px;
    }

    body.sots-operator-page .operator-quick-actions {
        flex-direction: row;
        align-items: center;
        overflow-x: auto;
        max-width: 100%;
        -webkit-overflow-scrolling: touch;
    }

    body.sots-operator-page .messages {
        min-height: 0;
        max-width: 100%;
        -webkit-overflow-scrolling: touch;
    }

    body.sots-operator-page .message {
        max-width: 84%;
        padding: 9px 10px;
        font-size: 12px;
    }

    body.sots-operator-page .message-time,
    body.sots-operator-page .message-badges {
        font-size: 9px;
    }

    body.sots-operator-page textarea,
    body.sots-operator-page input,
    body.sots-operator-page button:not(.send-button):not(#operatorSendButton) {
        max-width: 100%;
    }

    body.sots-operator-page .composer {
        padding: 0 8px 6px;
        padding-bottom: calc(6px + env(safe-area-inset-bottom, 0px));
    }

    body.sots-operator-page .composer-resize-handle {
        margin: 0 -8px 4px;
        width: calc(100% + 16px);
        height: 10px;
        flex-basis: 10px;
    }

    body.sots-operator-page .composer-resize-handle::after {
        content: '';
    }

    body.sots-operator-page .composer-row {
        display: flex;
        flex-direction: row;
        gap: 6px;
        align-items: flex-end;
    }

    body.sots-operator-page .composer textarea,
    body.sots-operator-page .composer-row textarea {
        flex: 1 1 auto;
        width: auto;
        max-width: none;
        min-width: 0;
        font-size: 16px;
    }

    body.sots-operator-page .composer-row .send-button,
    body.sots-operator-page #operatorSendButton {
        display: inline-flex;
        width: auto;
        max-width: none;
        min-width: 0;
        height: var(--sots-control-h, 24px);
        min-height: var(--sots-control-h, 24px);
        padding: 0 var(--sots-control-pad-x, 8px);
        font-size: var(--sots-control-font, 12px);
        border-radius: var(--sots-control-radius, 6px);
    }

    body.sots-operator-page .messages {
        padding: 8px 8px 10px;
    }
}

@media (max-width: 640px) {

    .sots-content,
    .sots-operator-content {
        padding: 8px;
    }

    .sots-subnav,
    .sots-nav {
        padding: 6px 12px;
    }

    .sots-workspace-app {
        gap: 12px;
    }

    .sots-workspace-card h1,
    .sots-workspace-card h2,
    .sots-workspace-card h3 {
        font-size: 22px;
    }

    .sots-communication-panel {
        min-height: calc(100vh - 230px);
    }

    .sots-message-area {
        min-height: 300px;
        padding: 16px;
    }

    body:not(.sots-operator-page) .messages {
        min-height: 300px;
        padding: 16px;
    }

    .sots-message-compose {
        flex-direction: column;
        align-items: stretch;
    }

    .sots-button {
        width: 100%;
        min-width: 0;
        min-height: var(--sots-control-h);
        height: var(--sots-control-h);
    }

    .msg-bubble {
        max-width: 92%;
    }

    body.sots-operator-page .message {
        max-width: 88%;
    }
}

/* Workspace polish v8.7.0 */
.sots-guidance-card {
    max-width: 380px;
}

.sots-workspace-card {
    padding: 12px 16px;
}

.sots-communication-panel {
    min-height: calc(100vh - 210px);
}

.sots-case-page {
    max-width: 720px;
    margin: 0 auto;
    padding: 8px 0 32px;
}

body.sots-operator-page.sots-case-page-body {
    height: auto;
    max-height: none;
    overflow: auto;
}

body.sots-operator-page.sots-case-page-body .sots-shell,
body.sots-operator-page.sots-case-page-body .sots-content {
    flex: 0 0 auto;
    height: auto;
    max-height: none;
    min-height: 0;
    overflow: visible;
    display: block;
}

.sots-case-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin: 0 0 10px;
}

.sots-case-head h1 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    color: var(--sots-text);
}

.sots-case-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.sots-case-kicker,
.sots-case-empty,
.sots-case-add-label {
    margin: 0 0 8px;
    color: var(--sots-muted);
    font-size: 13px;
}

.sots-case-doc {
    background: var(--sots-surface);
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-radius-sm);
    padding: 12px 14px 16px;
}

.sots-case-doc h2 {
    margin: 14px 0 6px;
    font-size: 13px;
    font-weight: 700;
    color: var(--sots-text);
    scroll-margin-top: 12px;
}

.sots-case-doc h2:first-child {
    margin-top: 0;
}

.sots-case-prose {
    margin: 0 0 6px;
    font-size: 13px;
    line-height: 1.4;
    color: var(--sots-text);
    white-space: pre-wrap;
}

.sots-case-status-line {
    margin: 0 0 6px;
    font-size: 13px;
    font-weight: 700;
}

.sots-case-plain,
.sots-case-log {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sots-case-plain > li,
.sots-case-log > li {
    margin: 0 0 8px;
    font-size: 13px;
    line-height: 1.4;
}

.sots-case-log-head {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: baseline;
}

.sots-case-log-head time {
    color: var(--sots-muted);
    font-size: 12px;
}

.sots-case-muted {
    color: var(--sots-muted);
}

.sots-case-flash {
    margin: 0 0 12px;
    padding: 8px 10px;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-primary-soft);
    color: var(--sots-text);
    font-size: 13px;
}

.sots-case-flash-error {
    background: var(--sots-surface);
    color: var(--sots-text);
}

.sots-case-jump {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 14px;
}

.sots-case-jump a {
    display: inline-flex;
    align-items: center;
    height: var(--sots-control-h);
    padding: 0 var(--sots-control-pad-x);
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    color: var(--sots-text);
    font-size: var(--sots-control-font);
}

.sots-case-section {
    margin: 0 0 12px;
    padding: 12px;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-radius-sm);
    background: var(--sots-surface);
}

.sots-case-section h2 {
    margin: 0 0 10px;
    font-size: 15px;
    font-weight: 700;
    color: var(--sots-text);
}

.sots-case-form {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.sots-case-add {
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--sots-border-soft);
}

.sots-case-item {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--sots-border-soft);
}

.sots-case-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.sots-case-grid-3 {
    grid-template-columns: minmax(8rem, 0.8fr) minmax(7rem, 0.8fr) 1.4fr;
}

.sots-case-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 12px;
    color: var(--sots-muted);
}

.sots-case-field .sots-input {
    min-height: var(--sots-control-h);
    height: var(--sots-control-h);
    background: var(--sots-surface-soft);
    color: var(--sots-text);
}

.sots-case-field textarea.sots-input {
    height: auto;
    min-height: var(--sots-textarea-min-h);
}

.sots-case-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.sots-case-delete {
    margin: 0;
}

.sots-case-btn {
    width: auto;
    min-width: 64px;
}

.sots-case-btn-quiet {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
    color: var(--sots-muted);
    height: var(--sots-control-h);
    min-height: var(--sots-control-h);
    padding: 0 var(--sots-control-pad-x);
    font-size: var(--sots-control-font);
    cursor: pointer;
    text-decoration: none;
}

.sots-case-link-row {
    margin: 0;
}

.sots-case-open {
    display: inline-flex;
    align-items: center;
    height: var(--sots-control-h);
    color: var(--sots-primary);
    font-size: var(--sots-control-font);
    text-decoration: underline;
}

.sots-case-pics {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 12px;
}

.sots-case-pic img {
    display: block;
    max-width: 100%;
    height: auto;
    border: 1px solid var(--sots-border);
    border-radius: var(--sots-control-radius);
    background: var(--sots-surface);
}

.sots-case-pic .sots-case-muted {
    margin: 4px 0 0;
    font-size: var(--sots-control-font);
}

@media (max-width: 640px) {
    .sots-case-grid,
    .sots-case-grid-3 {
        grid-template-columns: 1fr;
    }

    .sots-case-page .sots-button {
        width: auto;
    }
}

/* Mechanic shop disposition when Campaign is None but row is in Automotive mechanic shops */
body.sots-operator-page .ticket.is-opcon-mechanic-shop:not(.is-expanded) .person-reach-block.is-head-removal-note-only {
    display: block;
    margin-top: 2px;
}

body.sots-operator-page .ticket.is-opcon-mechanic-shop .person-opcon-category-reach-band {
    margin-top: 6px;
    width: 100%;
}

body.sots-operator-page .ticket.is-opcon-mechanic-shop .person-opcon-category-reach-top {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 2px;
}

body.sots-operator-page .ticket.is-opcon-mechanic-shop .person-opcon-category-reach-band > .person-reach-block.is-head-removal-note-only,
body.sots-operator-page .ticket.is-opcon-mechanic-shop .person-reach-block.is-head-removal-note-only .person-reach-disposition-row,
body.sots-operator-page .ticket.is-opcon-mechanic-shop .person-reach-block.is-head-removal-note-only .person-reach-disposition {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body.sots-operator-page .ticket.is-opcon-mechanic-shop .person-reach-disposition-head {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    width: 100%;
}

body.sots-operator-page .ticket.is-opcon-mechanic-shop:not(.is-expanded) .person-opcon-category-reach-band ~ .person-contact-methods {
    margin-top: 4px !important;
}