/* Shared cabinet density. Components keep their information hierarchy and
   44px controls; only decorative space and repeated explanations are reduced. */
:root { --density-gap: 16px; --density-inset: 16px; --field-gap: 6px; --form-gap: 14px; --section-gap: 24px; }
.page-heading, .admin-mode .page-heading { margin-block-end: 16px; gap: 12px; }
.page-heading h1, .admin-mode .page-heading h1 { font-size: 26px; }
.page-heading p { margin-block-start: 6px; }
.page-intro { margin-block: -4px 16px; max-width: 72ch; }
.section-heading { margin-block: 20px 10px; gap: 12px; flex-wrap: wrap; }
.section-heading h2 { font-size: 18px; }
.back-link { min-height: 44px; margin-block-end: 8px; }
.demo-banner { margin-block-end: 16px; }
.page-footer { margin-block-start: 20px; padding-block-start: 16px; }

/* The same compact rows on profile, devices, tariffs and campaign lists. */
.action-list { margin-block-start: 12px; border-radius: 14px; }
.action-row, .device-row { min-height: 60px; padding: 10px 14px; gap: 10px; }
.action-row strong, .device-row strong { font-size: 13px; overflow-wrap: anywhere; }
.action-row small, .device-row small { margin-block-start: 3px; line-height: 1.45; }
.action-row > span:first-child:not(.row-icon) { flex: 1; min-width: 0; }
.action-row > .row-icon, .device-row > .row-icon { width: 30px; height: 32px; border-radius: 8px; background: none; }
.row-icon .icon { width: 20px; height: 20px; }
.payment-total { flex: 0 0 auto; text-align: end; }
.profile-overview { padding: 14px 16px; gap: 12px; border-radius: 14px; }
.profile-overview .avatar.large { width: 42px; height: 42px; flex-shrink: 0; }
.profile-overview .avatar.large .icon { width: 24px; height: 24px; }
.profile-overview h2 { font-size: 18px; }
.profile-overview p { margin-block-start: 4px; }
.profile-overview + .section-heading { margin-block-start: 20px; }
.profile-shortcuts { margin-block-end: 12px; }
.empty-state, .support-empty { padding: 22px 16px; border-radius: 14px; }
.empty-state h2, .support-empty h2 { font-size: 20px; margin-block: 10px 8px; }
.empty-state h3 { font-size: 16px; margin-block: 10px 6px; }
.empty-state p { margin-block: 6px 10px; }
.empty-state > .icon { width: 24px; height: 24px; }
.details-list { margin-block-end: 16px; }
.details-list > div, .partner-summary .details-list > div { padding-block: 9px; gap: 16px; }
.details-list dt, .details-list dd { min-width: 0; overflow-wrap: anywhere; }
.details-list dd { text-align: end; }

/* Disclosures are visibly interactive, including without JavaScript. */
.compact-disclosure { border: 0; margin-block: 12px; font-size: 13px; }
.compact-disclosure > summary { cursor: pointer; min-height: 44px; padding-block: 11px; color: var(--text-secondary); }
.compact-disclosure > p { max-width: 72ch; margin-block: 4px 12px; color: var(--muted); line-height: 1.6; }
.manual summary, .setting-help summary, .service-settings details > summary,
.insights-details summary, .notification-read, .admin-table summary { min-height: 44px; }
.manual summary, .setting-help summary, .service-settings details > summary { padding-block: 10px; }

/* Purchasing: conditions and total stay visible, payment targets stay large. */
.tariff-choices { gap: 10px; margin-block: 8px 16px; }
.tariff-choice { padding: 12px 14px; gap: 5px; border-radius: 12px; }
.tariff-choice input { inset-block-start: 14px; inset-inline-end: 14px; }
.tariff-choice .plan-top { font-size: 15px; }
.tariff-choice .tariff-description { line-height: 1.45; }
.tariff-config-fields { gap: 12px; }
.tariff-total { margin-block: 8px 16px; padding-block: 12px; }
.payment-options { margin-block: 14px; gap: 8px; }
.payment-option { padding: 10px 12px; min-height: 44px; }
/* Balance is a compact choice; partner details already appear in the summary. */
.payment-option-balance { display: grid; grid-template-columns: 17px max-content minmax(0, 1fr); gap: 10px; }
.payment-option-balance > span { white-space: nowrap; }
.payment-option-balance small { margin: 0; min-width: 0; text-align: end; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.payment-options legend { margin-block-end: 8px; }
.seat-manager, .traffic-usage { padding: var(--density-inset); border-radius: 14px; }
.seat-manager { margin-block-end: 16px; }
.seat-explanation { margin-block: 6px 12px; }
.seat-current { margin-block: 12px; }
.seat-manager form { margin-block-start: 14px; padding-block-start: 14px; }
.seat-manager .payment-options, .seat-manager .consent { margin-block: 14px; }
.traffic-reading { margin-block: 12px 8px; }
.traffic-checkout h2 { font-size: 18px; margin-block: 20px 8px; }
.switch-option, .switch-summary { padding: 14px; }
.receipt { padding: 20px; border-radius: 16px; }
.receipt-icon { width: 42px; height: 42px; margin-block-end: 12px; }
.receipt h2 { font-size: 20px; margin-block: 10px; }
.receipt-amount { font-size: 32px; margin-block: 10px 16px; }

/* Instructions and help: shorter steps, compact question rows. */
.connected-header { margin-block-end: 12px; }
.connected-header h2 { font-size: 18px; margin: 0; }
.devices-seat-link { margin-block-end: 16px; }
.connection-guide { max-width: 620px; margin-block-end: 16px; }
.connection-guide h2 { font-size: 18px; margin-block: 0 8px; }
.connection-guide > p { font-size: 14px; line-height: 1.6; }
.setup-step { padding-block: 16px; gap: 12px; }
.setup-step > div { min-width: 0; }
.setup-step .step-num { width: 28px; height: 28px; font-size: 12px; }
.setup-step h2 { font-size: 18px; margin-block-end: 6px; }
.setup-step p { margin-block-end: 10px; line-height: 1.6; }
.help-layout { gap: 20px; }
.faq details { padding-block: 4px; }
.faq summary { min-height: 44px; padding-block: 10px; font-size: 14px; }
.faq p { margin-block: 4px 10px; }
.support-panel { padding: 16px; border-radius: 14px; }
.support-panel > .icon { width: 24px; height: 24px; }
.support-panel h2 { font-size: 18px; margin-block: 10px 8px; }
.support-panel p { line-height: 1.6; margin-block: 8px 12px; }
.support-panel .small { margin-block: 12px 0; }
.support-ticket-row { min-height: 60px; padding-block: 10px; gap: 10px; }
.support-ticket-copy small { margin-block-start: 3px; }
.support-filters { margin-block-end: 12px; }
.support-thread-heading { padding-block-end: 12px; }
.support-thread-heading h1 { font-size: 23px; }
.support-messages { gap: 12px; padding-block: 16px 10px; }
.support-live-status { margin-block-end: 8px; }
.support-new-form { gap: 12px; }
.support-resolve { margin-block-start: 16px; padding-block-start: 16px; }
.inbox-push-link { margin-block-end: 8px; }
.notification-row { padding-block: 10px; }
.notification-row form { display: inline-block; margin-inline-end: 8px; }
.notification-row .button { margin-block-start: 8px; }
.notification-meta { flex-wrap: wrap; gap: 4px 12px; }

/* Back office uses the same rhythm without flattening its module hierarchy. */
.admin-columns { gap: 16px; }
.admin-panel { padding: var(--density-inset); margin-block-end: 16px; }
.admin-panel h2 { font-size: 17px; margin-block-end: 12px; }
.admin-panel p { margin-block: 8px 12px; }
.admin-toolbar { margin-block-end: 16px; gap: 10px; }
.admin-panel .admin-toolbar { margin-block: 16px 8px; }
.admin-table th { padding: 10px 12px; }
.admin-table td { padding: 11px 12px; }
.admin-table .admin-name { min-height: 24px; }
.admin-facts { gap: 10px; }
.admin-discount-row { padding-block: 12px; gap: 12px; }
.campaign-form, .admin-panel .campaign-form { gap: var(--form-gap); }
.campaign-form > label { gap: 6px; font-size: 13px; }
.campaign-form > p { margin-block: 0; }
.campaign-form > h2 { font-size: 18px; margin-block: 8px 0; }
.campaign-form > .button { justify-self: start; }
.campaign-form textarea { min-height: 120px; }
.operations-disclosure, .operations-disclosure:not([open]) { padding-block: 14px; }
.operations-disclosure .campaign-form { margin-block-start: 12px; }
.operations-fields { gap: 12px; }
.period-row { padding-block: 12px; margin-block: 4px 12px; }
.form-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.form-pair > label { display: grid; gap: 6px; font-size: 13px; min-width: 0; }
.form-pair input, .form-pair select { width: 100%; min-width: 0; }
.inbox-item { padding: 14px 16px; border-radius: 14px; }
.inbox-item p { margin-block: 6px; }
/* Partners: summary and payout have distinct, quiet groups. */
.partner-layout { display:grid; gap:24px; align-items:start; max-width:1040px; }
.partner-summary { min-width:0; max-width:none; padding:18px; background:var(--surface); border-radius:14px; }
.partner-balance-label { display:block; font-size:12px; color:var(--muted); }
.partner-balance { display:block; font-size:30px; line-height:1.3; margin-block:4px 20px; font-variant-numeric:tabular-nums; }
.partner-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:0 0 20px; }
.partner-stats dt { font-size:12px; color:var(--muted); line-height:1.45; }
.partner-stats dd { margin:4px 0 0; font-size:16px; font-weight:600; overflow-wrap:anywhere; }
.partner-invite-label { display:block; font-size:12px; margin-block-end:6px; }
.partner-invite { display:flex; gap:8px; }
.partner-invite input { min-width:0; width:100%; font-size:13px; }
.partner-invite .button { flex-shrink:0; width:44px; padding:10px; }
.partner-summary .compact-disclosure { margin-block:8px 0; }
.payout-section { min-width:0; margin:0; padding:0; border:0; }
.payout-section h2 { font-size:19px; margin:0 0 6px; }
.payout-intro { font-size:12px; color:var(--muted); line-height:1.5; margin:0 0 18px; }
.payout-form { max-width:none; }
.payout-method-group { min-width:0; padding-block-end:10px; }
.payout-form .payout-methods { display:block; min-width:0; margin:0; padding:0; border:0; }
.payout-methods legend { font-size:13px; font-weight:400; margin-block-end:8px; padding:0; }
.payout-method-options { display:grid; grid-template-columns:1fr 1fr 1.5fr; gap:8px; }
.payout-method-options label { min-width:0; min-height:44px; padding:8px; gap:6px; border-radius:9px; font-size:12px; line-height:1.3; }
.payout-method-options input { width:16px; height:16px; min-height:0; flex-shrink:0; margin:0; }
.payout-form [data-payout] { gap:var(--form-gap); }
.payout-form [data-payout] label { gap:var(--field-gap); font-size:13px; }
.payout-form [data-payout] p { margin:0; line-height:1.5; }
.form-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; }
.form-actions p { margin:0; line-height:1.5; }
/* Payout and wallet history share the compact partner row rhythm. */
.partner-history{display:grid;gap:12px;margin-block-start:24px;min-width:0}
.partner-history-panel{min-width:0;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.partner-history-panel>summary{display:flex;align-items:center;gap:12px;list-style:none;cursor:pointer;min-height:56px;padding:10px 16px;font-size:14px;font-weight:600;border-radius:15px}
.partner-history-panel>summary::-webkit-details-marker{display:none}
.partner-history-panel>summary:hover{background:var(--raised)}
.partner-history-panel>summary:focus-visible{outline-offset:3px}
.partner-history-heading{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.partner-history-heading>.icon{width:18px;height:18px;color:var(--muted)}
.partner-history-count{font-size:12px;font-weight:400;color:var(--muted);text-align:end}
.partner-history-panel>summary>.icon{width:16px;height:16px;color:var(--muted)}
.partner-history-panel[open]>summary{border-radius:15px 15px 0 0}
.partner-history-panel[open]>summary>.icon{transform:rotate(90deg)}
.partner-history-body{border-top:1px solid var(--line);padding-inline:16px}
.partner-ledger-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding-block:10px;min-width:0}
.partner-ledger-row+.partner-ledger-row{border-top:1px solid var(--line)}
.partner-ledger-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--raised);color:var(--muted)}
.partner-payout-row>.partner-ledger-icon{align-self:start;margin-block-start:2px}
.partner-ledger-icon>.icon{width:16px;height:16px}
.partner-ledger-icon.is-credit{color:var(--green);background:color-mix(in srgb,var(--green) 9%,var(--surface))}
.partner-ledger-icon.is-pending{color:var(--accent);background:var(--accent-soft)}
.partner-ledger-description{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere;font-size:12px;line-height:1.45}
.partner-ledger-description>strong{font-size:13px;font-weight:550;color:var(--text)}
.partner-ledger-amount,.partner-ledger-result>strong{font-size:14px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
.partner-ledger-amount.is-credit{color:var(--green)}
.partner-ledger-result{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.partner-payout-status{font-size:11px;line-height:1.5;padding:2px 7px;border-radius:6px;background:var(--raised);color:var(--muted)}
.partner-payout-status.is-pending{color:var(--accent);background:var(--accent-soft)}
.partner-payout-status.is-paid{color:var(--green);background:color-mix(in srgb,var(--green) 9%,var(--surface))}
.partner-payout-status.is-rejected{color:var(--amber)}
.partner-history-empty{margin:0;padding-block:14px;font-size:13px;line-height:1.5;color:var(--muted)}
@media(max-width:560px){.partner-history-panel>summary{padding-inline:12px;gap:8px;font-size:13px}.partner-history-body{padding-inline:12px}.partner-ledger-row{grid-template-columns:24px minmax(0,1fr) auto;gap:8px}.partner-ledger-icon{width:24px;height:28px}.partner-ledger-amount,.partner-ledger-result>strong{font-size:13px}.partner-payout-row{grid-template-columns:24px minmax(0,1fr)}.partner-payout-row .partner-ledger-result{grid-column:2;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.partner-payout-reference{font-size:11px}}
@media(min-width:1050px) { .partner-layout { grid-template-columns:1fr 1.15fr; gap:32px; } }
/* Shared form rhythm: labels stay attached to fields, groups stay separate. */
.campaign-form, .campaign-form > *, .operations-fields > * { min-width:0; }
.campaign-form p, .account-verified, .message-body { overflow-wrap:anywhere; }
.campaign-form fieldset { min-width:0; }
.campaign-form > label:not(.consent), .operations-fields > label { min-width:0; }
.campaign-form input:not([type=checkbox]):not([type=radio]), .campaign-form select, .campaign-form textarea { max-width:100%; min-width:0; }
.campaign-form fieldset + label { margin-block-start:2px; }
.order-heading > .inline-note { margin-block:0 0 12px; }

.legal-text { max-width: 76ch; line-height: 1.7; }

@media (max-width:700px) {
  .page-heading h1, .admin-mode .page-heading h1 { font-size: 23px; }
  .action-row, .device-row { padding-inline: 12px; }
  .admin-columns { gap: 0; }
  .admin-panel { padding: 14px; }
  .profile-shortcuts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .profile-shortcuts .profile-action { flex-direction: row; min-height: 44px; padding: 8px 10px; font-size: 12px; gap: 8px; justify-content: flex-start; text-align: start; }
  .profile-action-count { position: static; margin-inline-start: auto; }
  .profile-overview { padding: 12px; }
  .support-page-heading { gap: 10px; }
  .setup-step { padding-block: 14px; }
  .receipt { padding: 16px; }
  .support-ticket-row .ticket-status { margin-inline-start: 44px; }
  .tariff-admin-list .action-row > span:nth-last-child(2) { font-size: 12px; }
}
@media (max-width:460px) {
  .form-pair { grid-template-columns: 1fr; }
  .action-row:has(.payment-total) { display: grid; grid-template-columns: 30px minmax(0,1fr) 16px; }
  .action-row:has(.payment-total) > .row-icon { grid-row: 1 / 3; }
  .action-row:has(.payment-total) > span:nth-child(2) { grid-column: 2; }
  .action-row:has(.payment-total) > .payment-total { grid-column: 2; display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; text-align: start; }
  .action-row:has(.payment-total) > .icon { grid-column: 3; grid-row: 1 / 3; }
  .tariff-admin-list .action-row { flex-wrap: wrap; }
  .tariff-admin-list .action-row > span:first-child { flex-basis: calc(100% - 32px); }
}
@media (min-width:1050px) {
  .service-settings { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; max-width: none; align-items: start; }
  .service-settings > .admin-panel { margin: 0; }
  .service-settings > .button { grid-column: 1/-1; justify-self: start; }
}
.admin-table-wrap:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
@media (max-width:700px) {
  .admin-table-wrap::before { content: 'Все столбцы — прокрутите вправо →'; display: block; position: sticky; inset-inline-start: 0; width: fit-content; max-width: 100%; padding: 8px 12px; color: var(--muted); font-size: 11px; }
  .admin-table-wrap:has(.insights-table)::before { content: none; }
}

/* New ticket: one heading column and a short, resizable message field. */
.support-compose-heading { display: block; max-width: 720px; }
.support-compose-heading h1 { margin: 0; }
.support-compose-heading p { margin-block: 6px 0; line-height: 1.5; }
.support-new-form { gap: 10px; }
.support-new-form input[name=subject] { min-height: 44px; padding: 10px 12px; line-height: 1.4; }
.support-new-form textarea { min-height: 100px; padding: 10px 12px; line-height: 1.5; }
.support-new-form #support-message-hint { margin-block-start: -4px; font-size: 12px; line-height: 1.5; }
.support-new-form .support-upload { margin-block: 2px; }
.support-new-form .support-ai-disclosure { margin-block: 2px; }
.support-new-form .support-file-picker { font-size: 13px!important; }
.support-new-form .support-form-actions { justify-content: flex-start; }
.support-new-form .support-form-actions .button { margin-inline: 0; }

/* Active/expired/provisioning before first connection use a compact card too. */
.subscription.subscription-intro { padding: 16px; border-radius: 16px; }
.subscription-intro .subscription-topline { margin-block-end: 12px; gap: 12px; }
.subscription-intro .subscription-heading { flex: 1; }
.subscription-intro .subscription-heading h2 { font-size: 20px; line-height: 1.25; margin-block: 10px 0; text-wrap: initial; letter-spacing: -.025em; }
.subscription-intro .subscription-traffic { width: 100px; max-width: 40%; flex-shrink: 0; gap: 2px; }
.subscription-intro .subscription-traffic strong { font-size: 23px; }
.subscription-intro .subscription-traffic .meter-track { margin-block: 4px; height: 4px; }
.subscription-intro .subscription-traffic progress { min-width: 0; }
.intro-facts { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 14px; font-size: 12px; color: var(--text-secondary); }
.intro-facts > span { display: inline-flex; align-items: center; gap: 5px; }
.intro-facts strong { font-weight: 550; }
.intro-facts .icon { width: 16px; height: 16px; }
.subscription-intro p.intro-note { margin-block: 8px 12px; font-size: 12px; line-height: 1.5; }
@media (max-width:360px) {
  .subscription-intro .subscription-heading h2 { font-size: 18px; }
  .subscription-intro .subscription-traffic { width: 84px; }
  .subscription-intro .status-pill { font-size: 10px; padding-inline: 7px; }
}

/* Native Remnawave instructions: compact steps, comfortable touch targets. */
.native-guide {max-width:720px}
.guide-buttons {display:flex;flex-wrap:wrap;gap:8px}
.guide-selector {display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:0}
.guide-selector label {display:grid;gap:5px;min-width:0;font-size:12px;color:var(--muted)}
.native-guide .guide-selector select {min-height:40px;padding:8px 10px;font-size:14px;border-radius:9px}
.guide-selector noscript {grid-column:1/-1}
.native-guide .button {min-height:40px;padding:8px 12px;font-size:14px}
.connection-steps {list-style:decimal;margin:0;padding-left:24px}
.connection-steps li {padding:14px 0 14px 6px;border-bottom:1px solid var(--line)}
.connection-steps li::marker {color:var(--accent);font-weight:600}
.native-guide .connection-steps h2 {font-size:17px;margin:0 0 6px;line-height:1.35}
.native-guide .connection-steps p {font-size:14px;line-height:1.55;margin:0 0 10px}
.native-guide .manual {margin-top:16px}
.native-guide .reset-link {display:flex;margin:14px 0}

/* Devices: one main group, secondary controls without divider stacks. */
.devices-overview {max-width:720px;background:var(--surface);border-radius:16px;padding:18px}
.devices-overview-top {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px}
.devices-capacity {display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}
.devices-capacity>.icon {width:18px;height:18px;margin-inline-end:2px}
.devices-capacity strong {color:var(--text);font-weight:600}
.devices-capacity strong span {color:var(--muted);font-weight:400}
.devices-overview-top>.text-link {font-size:13px;min-height:36px}
.devices-welcome {margin-block-start:20px}
.devices-welcome h2 {font-size:18px;line-height:1.35;margin:0 0 6px;letter-spacing:-.02em}
.devices-welcome p {color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 16px;max-width:42ch}
.devices-overview .devices-add {min-height:44px;font-size:13px}
.devices-items {display:grid;gap:8px;margin-block:16px}
.devices-items .device-row {border:0;padding:8px 0;background:none;min-width:0}
.devices-items .device-row>div {min-width:0}
.devices-items .device-row form {flex-shrink:0}
.devices-secondary {max-width:720px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:12px;margin-block-start:12px}
.devices-secondary .devices-reset {color:var(--muted);font-size:12px;font-weight:400;min-height:40px}
.devices-secondary .devices-reset:hover {color:var(--text)}
.devices-help {grid-column:2;min-width:0;font-size:12px;color:var(--muted);text-align:end}
.devices-help summary {cursor:pointer;min-height:40px;padding-block:10px;line-height:20px}
.devices-help-copy {width:calc(200% + 12px);margin-inline-start:calc(-100% - 12px);text-align:start}
.devices-help p {font-size:13px;line-height:1.6;margin:4px 0 10px;max-width:60ch}
@media(max-width:440px){.devices-overview{padding:16px}.devices-welcome h2{font-size:17px}.devices-items .row-icon{display:none}.devices-items .device-row{gap:8px}.devices-secondary{gap:12px}}

/* Installation handoff: the destination is visible and can be copied manually. */
.install-browser {max-width:520px;margin-block:12px 18px}
.install-browser > .button {margin-block-end:14px}
.install-link-label {display:block;font-size:12px;color:var(--muted);margin-block-end:6px}
.install-link {display:flex;gap:8px;align-items:stretch}
.install-link input {width:100%;min-width:0;font-size:13px}
.install-link .button {width:44px;flex-shrink:0;padding:10px}
.setup-step .install-browser .small {font-size:12px;line-height:1.5;margin-block:8px 0}
.install-instructions {padding-inline-start:18px;margin-block:0 12px;font-size:13px;line-height:1.6}
.install-instructions li + li {margin-block-start:8px}
#install-status:empty {display:none}

/* Device pagination remains compact and wraps before controls can overflow. */
.devices-pagination {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-block:16px 20px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.devices-page-controls {display:flex;align-items:center;gap:12px}
.devices-page-controls .button {min-height:44px;padding-inline:12px}
.devices-page-number {white-space:nowrap}

.wallet-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;margin:16px 0;border-radius:16px;background:var(--surface,#191917)}
.wallet-summary strong{display:block;font-size:24px;line-height:1.3;margin:4px 0;font-variant-numeric:tabular-nums}.wallet-summary p{margin:6px 0 0}.wallet-summary .button{flex-shrink:0}@media(max-width:600px){.wallet-summary{align-items:flex-start;flex-direction:column;padding:14px}}
.live-announcement{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.live-notice{margin:12px 24px 0;padding:10px 14px;border-radius:12px;background:var(--surface,#191917);color:var(--muted);font-size:13px}
.live-notice a{color:var(--accent);text-decoration:underline}

/* Order states share one aligned receipt; the payment action has priority. */
.order-layout { width:100%; max-width:600px; margin-inline:auto; }
.order-layout > .back-link { margin-block:0 12px; }
.order-layout .receipt { max-width:none; padding:28px; margin:0; text-align:start; }
.order-heading { display:flex; align-items:center; gap:12px; margin-block-end:24px; }
.order-heading h1 { margin:0; font-size:24px; line-height:1.25; letter-spacing:-.03em; text-wrap:balance; }
.order-heading .receipt-icon { width:36px; height:36px; margin:0; flex-shrink:0; color:var(--accent); border:0; background:var(--accent-soft); border-radius:50%; }
.order-heading .receipt-icon .icon { width:20px; height:20px; }
.receipt-paid .receipt-icon, .receipt-credited .receipt-icon { color:var(--green); background:#192e25; }
.receipt-cancelled .receipt-icon { color:var(--muted); background:var(--raised); }
.order-summary h2 { font-size:16px; font-weight:550; line-height:1.55; margin:0; color:var(--text-secondary); overflow-wrap:anywhere; }
.order-summary .receipt-amount { font-size:36px; font-weight:650; line-height:1.25; margin:8px 0 20px; letter-spacing:-.025em; overflow-wrap:anywhere; }
.order-facts { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px 24px; margin:0; }
.order-facts > div { display:flex; align-items:center; gap:8px; font-size:13px; }
.order-facts dt { display:flex; align-items:center; gap:6px; color:var(--muted); }
.order-facts dt .icon { width:16px; height:16px; }
.order-facts dd { margin:0; font-variant-numeric:tabular-nums; }
.receipt .order-provider { margin:12px 0 0; font-size:12px; color:var(--muted); }
.order-actions { display:grid; gap:12px; border-top:1px solid var(--line); margin-block-start:22px; padding-block-start:22px; }
.order-actions > form { margin:0; }
.order-actions .button { min-height:48px; gap:12px; }
.receipt .order-message { margin:0; color:var(--text-secondary); font-size:14px; line-height:1.6; }
.receipt .order-auto { display:flex; align-items:flex-start; justify-content:center; gap:7px; font-size:12px; line-height:1.6; margin:0; color:var(--muted); }
.order-auto .icon { width:15px; height:15px; margin-top:2px; }
.order-help { font-size:13px; }
.order-help summary { min-height:44px; display:flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; color:var(--text-secondary); list-style:none; }
.order-help summary::-webkit-details-marker { display:none; }
.order-help summary::after { content:'+'; font-size:18px; line-height:1; color:var(--muted); }
.order-help[open] summary::after { content:'−'; }
.order-help > div { padding:4px 0 8px; }
.order-help p { margin:0 0 4px; }
.order-help .text-button { display:flex; align-items:center; gap:8px; }
.order-help .icon { width:16px; height:16px; }
.order-cancel { margin:8px 0 -8px; text-align:center; }
.order-cancel .text-button { color:var(--muted); text-align:center; padding:10px 4px; }
.order-cancel .text-button:hover { color:var(--text); }
.order-actions .wallet-summary { padding:0; border:0; border-radius:0; background:none; margin:0; }
.order-actions .wallet-summary > div { width:100%; }
.order-actions .wallet-summary strong { font-size:20px; }
.order-actions .wallet-summary p { margin:4px 0 0; }
.order-checkout { display:grid; gap:12px; }
.order-checkout p { margin:0; }
@media(max-width:700px) {
 .order-layout .receipt { padding:20px; }
 .order-heading { gap:10px; margin-block-end:20px; }
 .order-heading h1 { font-size:22px; }
 .order-summary .receipt-amount { font-size:32px; }
 .order-facts { flex-direction:column; gap:8px; }
 .order-facts > div { justify-content:space-between; }
 .order-actions { margin-block-start:20px; padding-block-start:20px; }
}
.order-checkout .checkout-email { margin:0; }

/* Secondary account settings stay quiet beside the payment history. */
.balance-renewal{margin:12px 0 24px;max-width:720px;font-size:14px}
.balance-renewal>summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;min-height:44px;padding:6px 0}
.balance-renewal>summary::-webkit-details-marker{display:none}
.balance-renewal>summary:after{content:"+";color:var(--muted);margin-left:auto;font-size:20px}
.balance-renewal[open]>summary:after{content:"−"}
.balance-renewal-content{padding:4px 0 0}
.balance-renewal-content form{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin:0}
.balance-renewal-content .button{min-height:40px;padding:8px 14px;font-size:13px}
.balance-renewal-content p{margin:10px 0 0;font-size:12px;line-height:1.6;max-width:65ch}
.account-security-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px}
.email-change{margin-top:20px;max-width:460px}
.email-change h3{margin:0 0 16px}
.email-change>.text-link{display:inline-flex;margin-top:12px;margin-right:20px;min-height:40px;align-items:center}
@media(max-width:480px){.balance-renewal>summary{gap:8px;font-size:12px}.balance-renewal-content form{gap:10px}.account-security-actions .button{font-size:14px}}

/* Support routing is a secondary choice, not a competing card. */
.support-assistance{margin:4px 0 8px}
.support-assistance>p{margin:0 0 4px;max-width:65ch}
.support-assistance .support-operator-choice{font-size:13px;font-weight:400;min-height:44px;margin:0;gap:8px!important;width:fit-content}
.support-assistance .support-operator-choice input{width:16px!important;height:16px;flex-basis:16px}
.support-assistance>small{display:block;margin-left:24px;font-size:12px;line-height:1.5}

/* Keep the shell in place while fetching the next server-rendered page. */
html.page-loading{cursor:progress}
html.page-loading::before{content:"";position:fixed;inset:0 0 auto;height:2px;background:var(--gold,#d6b66a);z-index:10000;animation:page-progress 1s ease-in-out infinite;transform-origin:left}
@keyframes page-progress{0%{transform:scaleX(.12);opacity:.6}60%{transform:scaleX(.8);opacity:1}100%{transform:scaleX(1);opacity:.35}}
@media(prefers-reduced-motion:reduce){html.page-loading::before{animation:none}}

/* Compact batch controls share the list's leading edge and wrap on narrow screens. */
.bulk-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-block:16px;padding:12px;background:var(--surface,#191918);border-radius:12px}
.bulk-toolbar .bulk-all{display:flex;align-items:center;gap:8px;min-height:44px;margin:0;font-size:13px}
.bulk-toolbar input[type=checkbox],.bulk-choice input{width:18px;height:18px;margin:0;flex:none}
.bulk-count{font-size:13px;color:var(--muted);white-space:nowrap}
.bulk-toolbar .bulk-operation{margin:0;flex:1 1 180px;max-width:270px}
.bulk-toolbar select{width:100%;min-height:44px;margin:0;font-size:13px}
.bulk-hint{flex-basis:100%;color:var(--muted);font-size:12px}
.bulk-choice{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:0;cursor:pointer}
.admin-table th.bulk-choice-cell,.admin-table td.bulk-choice-cell{width:44px;min-width:44px;padding-inline:4px}
.bulk-ticket-row{display:flex;align-items:center;min-width:0;gap:4px}
.bulk-ticket-row>.support-ticket-row{flex:1;min-width:0}
.bulk-choice:has(input:disabled){opacity:.4;cursor:not-allowed}
/* Administrative account merge: compact comparison with explicit selection. */
.merge-workspace{width:100%;max-width:1050px}
.merge-workspace .admin-toolbar{max-width:none}
.merge-workspace .admin-toolbar>label:nth-child(2){max-width:none}
.merge-accounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0 20px}
.merge-account{display:flex;flex-direction:column;gap:12px;padding:18px;border:1px solid var(--line);border-radius:12px;min-width:0;margin:0}
.merge-choice{cursor:pointer}
.merge-choice:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,transparent)}
.merge-choice:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:3px}
.merge-choice-heading{display:flex;align-items:center;gap:10px;min-height:28px}
.merge-identity,.merge-balance{font-size:.82rem;color:var(--muted);overflow-wrap:anywhere}
.merge-subscription{display:flex;flex-direction:column;gap:4px}
.merge-form{display:grid;gap:18px}
.merge-form fieldset{border:0;padding:0;margin:0;min-width:0}
.merge-form legend{font-size:1.1rem;font-weight:600}
.merge-form>.button{justify-self:start}
@media(max-width:650px){.merge-accounts{grid-template-columns:1fr}.merge-account{padding:14px}.merge-workspace .admin-toolbar{display:grid;grid-template-columns:1fr}}

.merge-form>label:not(.consent){display:grid;gap:8px}
.merge-form textarea{box-sizing:border-box;width:100%;min-height:84px;resize:vertical;border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--surface);color:var(--text);font:inherit;line-height:1.5}
.merge-workspace .consent{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5}
.merge-workspace input[type=radio],.merge-workspace input[type=checkbox]{width:18px;height:18px;flex:none;margin:3px 0;accent-color:var(--accent)}

.access-sync-notice .inline-note{display:flex;align-items:flex-start;gap:10px;margin:0 0 18px;line-height:1.5}
.access-sync-notice .icon{width:18px;height:18px;margin-top:1px;color:var(--accent)}

/* Compact partner rows: identity and Telegram share a line; sums align on the right. */
.partner-people,.partner-accruals{margin-block:24px}
.partner-data-list{border:1px solid var(--line);border-radius:var(--radius,16px);overflow:hidden}
.partner-data-list>p{padding:16px;margin:0}
.partner-person-row,.partner-accrual-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,auto) minmax(120px,auto);gap:8px 24px;padding:10px 16px;align-items:center}
.partner-accrual-row{grid-template-columns:minmax(0,1fr) auto}
.partner-person-row+.partner-person-row,.partner-accrual-row+.partner-accrual-row{border-top:1px solid var(--line)}
.partner-person-identity{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}
.partner-person-heading{display:flex;flex-wrap:wrap;align-items:center;gap:0 12px;min-width:0}
.partner-person-heading>strong{font-size:14px;line-height:1.4}
.partner-telegram{display:flex;flex-wrap:wrap;align-items:center;gap:0 12px;min-width:0;font-size:12px}
.partner-id-copy{background:transparent;border:0;border-radius:8px;color:var(--accent);font-family:inherit;cursor:pointer;font-size:12px;min-height:32px;padding:2px 0;text-align:start;max-width:100%;white-space:normal;overflow-wrap:anywhere;display:inline-flex;align-items:center;gap:6px}
.partner-id-copy svg{width:14px;height:14px;flex-shrink:0}
.partner-id-copy:hover{background:var(--raised)}
.partner-telegram>a{display:inline-flex;align-items:center;min-height:32px}
.partner-person-metric{display:flex;flex-direction:column;gap:2px;min-width:0;text-align:end;overflow-wrap:anywhere}
.partner-person-metric strong{font-size:14px;font-variant-numeric:tabular-nums}
.partner-person-identity>.muted,.partner-person-metric>.small{font-size:12px;line-height:1.4}
@media(pointer:coarse){.partner-id-copy,.partner-telegram>a{min-height:44px}}
@media(max-width:680px){.partner-person-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 16px;padding:10px 12px}.partner-person-identity{grid-column:1/-1}.partner-person-metric{text-align:start;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:2px 8px}.partner-accrual-row{grid-template-columns:minmax(0,1fr);padding:10px 12px;gap:6px}.partner-people .customer-section-heading,.partner-accruals .customer-section-heading{flex-wrap:wrap}}

.partner-filters{display:flex;align-items:end;flex-wrap:wrap;gap:10px 12px;margin-block:12px}
.partner-filters label{display:flex;flex-direction:column;gap:4px;margin:0;font-size:12px;flex:1 1 240px;min-width:0}
.partner-filters input,.partner-filters select{width:100%;min-width:0;margin:0;font-size:14px;min-height:44px}
.partner-filters>.text-link{min-height:44px;display:inline-flex;align-items:center}
@media(max-width:560px){.partner-filters label{flex-basis:100%}.partner-filters .button{flex:1}}

/* Sign-in settings: compact rows with one action per credential. */
.security-settings{max-width:880px}
.security-intro,.security-shared-note{font-size:13px;line-height:1.5;color:var(--muted);margin:0 0 16px}
.security-settings-list{border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.security-setting-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px;min-width:0}
.security-setting-row+.security-setting-row{border-top:1px solid var(--line)}
.security-setting-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--raised);color:var(--muted)}
.security-setting-icon>.icon{width:18px;height:18px}
.security-setting-body{min-width:0;overflow-wrap:anywhere}
.security-setting-heading{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}
.security-setting-heading h2{margin:0;font-size:14px;font-weight:600;line-height:1.5}
.security-setting-body>p{font-size:13px;line-height:1.5;color:var(--muted);margin:3px 0 0}
.security-setting-action{font-size:12px;min-height:44px;padding:8px 12px;white-space:nowrap}
.security-state{display:inline-flex;align-items:center;gap:4px;font-size:11px;line-height:1.5;color:var(--muted)}
.security-state.is-enabled{color:var(--green)}
.security-state>.icon{width:13px;height:13px}
.security-shared-note{margin:12px 0 0}
.security-link-help{font-size:12px;margin:0}
.security-link-help>summary{display:flex;align-items:center;gap:6px;list-style:none;min-height:36px;cursor:pointer;color:var(--accent);width:fit-content}
.security-link-help>summary::-webkit-details-marker{display:none}
.security-link-help>summary>.icon{width:14px;height:14px}
.security-link-help[open]>summary>.icon{transform:rotate(90deg)}
.security-link-help>p{max-width:60ch;margin:0 0 4px;line-height:1.6;color:var(--muted)}
.security-editor{max-width:540px;padding:18px;margin-block-start:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface);scroll-margin-block-start:20px}
.security-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.security-editor-heading h2{margin:0;font-size:16px;line-height:1.4}
.security-editor-heading>.text-link,.security-forgot{display:inline-flex;align-items:center;min-height:44px;font-size:12px}
.security-editor .account-form{gap:12px;margin:0}
.security-editor .account-form label{font-size:13px}
.security-editor .account-form p,.security-editor>p{font-size:12px;line-height:1.6;margin:0}
.security-editor>p{margin-bottom:14px}
.security-forgot{margin-top:8px}
@media(pointer:coarse){.security-link-help>summary{min-height:44px}}
@media(max-width:560px){.security-setting-row{grid-template-columns:28px minmax(0,1fr);gap:8px 10px;padding:12px}.security-setting-icon{width:28px;height:30px;align-self:start}.security-setting-action{grid-column:2;justify-self:start}.security-editor{padding:14px}.security-editor-heading{margin-bottom:12px}}

/* Payment confirmation stays secondary to connecting the purchased access. */
.order-confirmation { display:flex; flex-wrap:wrap; align-items:center; gap:6px 20px; margin-top:20px; padding-top:16px; border-top:1px solid var(--line); }
.order-confirmation .text-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; }
.order-confirmation > small { font-size:12px; line-height:1.5; }
@media(max-width:560px) { .order-confirmation { flex-direction:column; align-items:flex-start; gap:0; } }

.admin-seat-controls{display:grid;grid-template-columns:minmax(0,2fr) minmax(90px,1fr);gap:12px}.admin-seat-controls input,.admin-seat-controls select{width:100%;min-width:0}
