.ng-shell .main { padding: 32px 40px 120px; max-width: 1360px; width: 100%; }
.ng-banners:empty { display: none; }
.ng-banners > .ui-banner, .ng-banners > div > .ui-banner { margin-bottom: 12px; }
.ng-block { width: 100%; }
.view > .ui-card, .view > details.ui-card, .view > .ui-grid, .view > .ui-howto, .view > .ui-banner, .view > .pivot-bar, .view > #planBanner > .ui-banner { margin-bottom: 20px; }
.view > .ui-grid > .ui-card { margin: 0; }
.ui-grid + .ui-grid { margin-top: 0; }
.ng-kpis { margin-bottom: 16px; }
.ng-kpis:empty { display: none; }
.ng-grid-chart { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
@media (max-width: 1100px) { .ng-grid-chart { grid-template-columns: 1fr; } }
.ui-card-body .ui-steps li > span strong { font-weight: 650; }
.ui-page-head .analyst-note { margin-top: 6px; }
.ui-page-title { font-size: 30px; }
.view .ui-section-title { margin: 22px 0 10px; }
.ui-card > .ui-card-body:first-child { padding-top: 16px; }
.ui-card-desc b { color: var(--ink-3); }
.ui-kpi .ui-kpi-value { font-variant-numeric: tabular-nums; }
.ui-table td { vertical-align: top; }
.ui-table .finding-line code { font-size: 11.5px; }
.ui-table tbody tr td.empty, .ui-table td.ui-empty { text-align: center; color: var(--muted); padding: 26px 20px; }
.ui-card .ui-table-wrap .ui-table th:first-child, .ui-card .ui-table-wrap .ui-table td:first-child { padding-left: 20px; }
.ui-card-foot:empty { display: none; }
.ui-link { font-size: inherit; }
.ui-btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.9; }
.ui-check { align-items: center; }
.ui-check input { margin-top: 0; }
.ng-label-split { justify-content: space-between; }
.ng-label-split .ui-link { font-size: 12.5px; }
.ui-help { margin-top: 0; }
.ui-field > .ui-help:last-child { margin-top: 2px; }
.ui-banner code { display: block; margin-top: 6px; word-break: break-all; }
.ui-banner.secret-reveal { margin: 0 0 14px; }

.ui-card.ng-filters { display: flex; flex-wrap: wrap; gap: 12px 14px; padding: 14px 18px; align-items: flex-end; margin-bottom: 16px; }
.ng-filter { display: flex; flex-direction: column; gap: 6px; min-width: 160px; }
.ng-filter .ui-select { min-width: 170px; }
.ng-filter-wide { flex: 1; min-width: 220px; }
.ng-filter-tabs .ui-segmented { flex-wrap: wrap; }
.ng-filter-end { margin-left: auto; }
.ui-segmented.segmented button.active { background: var(--surface); color: var(--ink); box-shadow: 0 1px 2px rgba(17, 17, 19, 0.1); }
.ui-segmented .count { font: 600 11px var(--mono); background: var(--panel); border-radius: 99px; padding: 1px 7px; margin-left: 6px; }
.ui-tabs .ui-tab.active { color: var(--ink); font-weight: 700; box-shadow: inset 0 -2px 0 var(--accent); }

details.ng-fold > summary { list-style: none; cursor: pointer; padding: 18px 22px; display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; row-gap: 2px; }
details.ng-fold > summary::-webkit-details-marker { display: none; }
details.ng-fold > summary > * { grid-column: 1; }
details.ng-fold > summary::after { content: "Show"; grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--link); font-weight: 600; font-size: 13px; }
details.ng-fold[open] > summary::after { content: "Hide"; }
details.ng-fold > .ui-card-body { border-top: 1px solid var(--line-2); padding-top: 16px; }
details.card.advanced-codes.ng-fold > summary, details.ui-card.advanced-codes > summary { justify-content: stretch; }

.ui-howto { box-shadow: var(--shadow); }
.ui-howto-body p { margin: 4px 0 8px; }
.ui-howto-body p:last-child { margin-bottom: 0; }

[data-lock].is-locked .ui-lock-note, [data-lock].is-locked > .ui-lock-note { display: block; }
.ui-lock-note:empty { display: none !important; }
.ui-lock-note .ui-link { margin-left: 4px; }
.protect-tile.is-locked, .account-option.is-locked { opacity: 0.62; cursor: not-allowed; }
.protect-tile.is-locked:hover { border-color: var(--line); transform: none; }
.protect-tile .ui-lock-note { color: var(--attention-text); font-weight: 600; font-size: 12px; margin-top: 4px; }
.protect-tile .ui-badge-plan, .account-option .ui-badge-plan { margin-left: 6px; vertical-align: 1px; }
form.is-locked .ui-form-grid, form.is-locked > .ui-btn { opacity: 0.55; pointer-events: none; }
.ui-card.is-locked > .ui-card-head .ui-card-desc { opacity: 0.75; }
.ui-setting.is-locked .lang-chips { opacity: 0.5; pointer-events: none; }
.ng-rule-meter:empty { display: none; }
.ng-rule-meter { padding-top: 6px; padding-bottom: 10px; }
.ng-meter-row { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; font-size: 13px; margin-bottom: 6px; }
.ng-meter-row strong { font-variant-numeric: tabular-nums; }

.ng-auth { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); padding: 0; align-items: stretch; background: var(--page); }
.ng-auth-hero { background: var(--hero); color: var(--hero-text); padding: 56px 64px; display: flex; flex-direction: column; justify-content: space-between; gap: 48px; min-height: 100vh; }
.ng-auth-hero-brand { display: flex; align-items: center; }
.ng-auth-hero-brand .logo { height: 30px; }
.ng-auth-hero-main { display: flex; flex-direction: column; gap: 28px; max-width: 520px; }
.ng-auth-hero-title { font-size: 44px; line-height: 1.08; font-weight: 700; letter-spacing: -0.02em; }
.ng-auth-hero-text { margin: 0; font-size: 17px; line-height: 1.55; color: var(--hero-muted); }
.ng-auth-demo { background: var(--hero-card); border: 1px solid var(--hero-line); border-radius: 16px; padding: 20px; display: flex; flex-direction: column; gap: 14px; }
.ng-auth-demo-kicker { font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--hero-muted); }
.ng-auth-demo-row { display: flex; flex-direction: column; gap: 8px; }
.ng-auth-demo-label { font-size: 12.5px; color: var(--hero-muted); }
.ng-auth-demo-box { background: var(--hero); border-radius: 10px; padding: 12px 14px; font-size: 15px; line-height: 1.6; }
.ng-chip-raw, .ng-chip-safe { border-radius: 4px; padding: 1px 5px; font-family: var(--mono); font-size: 14px; white-space: nowrap; }
.ng-chip-raw { background: var(--hero-warn-chip); color: var(--hero-warn-text); }
.ng-chip-safe { background: var(--hero-ok-chip); color: var(--hero-hi); }
.ng-auth-demo-foot { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--hero-muted); }
.ng-auth-demo-foot svg { width: 16px; height: 16px; flex: none; fill: none; stroke: var(--hero-hi); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ng-auth-hero-foot { margin: 0; font-size: 13px; color: var(--hero-muted); }
.ng-auth .auth-panel { max-width: 468px; width: 100%; margin: auto; padding: 48px 24px; display: flex; flex-direction: column; gap: 20px; }
.ng-auth .auth-brand { display: none; margin: 0; }
.ng-auth .auth-tabs { margin: 0; }
.ng-auth .auth-card { padding: 28px; border-radius: 16px; }
.ng-auth .auth-card form { display: flex; flex-direction: column; gap: 18px; }
.ng-auth .auth-card form > .ui-field, .ng-auth .auth-card form .ui-field { margin-bottom: 0; }
.ng-auth .auth-card .ui-banner { margin-bottom: 14px; font-size: 13px; }
.ng-auth .auth-step-title { font-size: 24px; font-weight: 700; letter-spacing: -0.01em; margin: 0; }
.ng-auth-head { display: flex; flex-direction: column; gap: 6px; }
.ng-auth-head .ui-help, .ng-auth .auth-step-title + .ui-help { font-size: 14px; margin: 0; line-height: 1.5; }
.ng-auth .auth-step-ico { margin-bottom: 0; }
.ng-auth .ui-input { height: 44px; font-size: 15px; }
.ng-btn-lg { height: 46px; font-size: 15px; border-radius: 10px; }
.ng-auth .ui-btn.ng-btn-lg:not(.ui-btn-primary) { height: 44px; font-weight: 500; font-size: 14.5px; }
.ng-auth .or-rule { margin: 0; }
.ng-auth form #passkeyLoginBtn { margin: 0 0 -8px; }
.ng-check-2 small { display: block; font-size: 12.5px; color: var(--muted); margin-top: 1px; }
.ng-mfa-switch { align-self: flex-start; font-size: 13px; margin-top: -10px; }
.ng-mt { margin-top: 4px; }
.ng-auth .auth-foot { margin: 0; }

.ng-account-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; }
.ng-account-cards .account-option { position: relative; padding: 14px; border-radius: 12px; border: 2px solid var(--line); }
.ng-account-cards .account-option input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.ng-account-cards .account-option:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); box-shadow: none; }
.ng-account-cards .account-option:has(input:focus-visible) { outline: 3px solid var(--focus); outline-offset: 2px; }
.ng-account-cards .account-option strong { font-size: 15px; font-weight: 700; }
.ng-account-cards .account-option small { font-size: 12.5px; line-height: 1.4; margin-top: 4px; }
.ng-auth .auth-alt { display: flex; justify-content: space-between; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.ng-auth .auth-turnstile { margin-top: 12px; min-height: 65px; }
.ng-auth .account-option small { margin-top: 2px; }
.ng-auth .ui-help#mfaSub { margin-bottom: 14px; }
.ng-trust { border: 1px solid var(--line); background: var(--page); border-radius: 12px; padding: 14px; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.ng-trust-days { display: flex; align-items: center; gap: 10px; padding-left: 28px; }
.ng-trust-days .ui-label { font-weight: 400; font-size: 13px; color: var(--muted); white-space: nowrap; }
.ng-trust-days .ui-select { max-width: 140px; height: 36px; }
.ng-trust > .ui-help { padding-left: 28px; }
.ng-trust .ui-help { margin: 0; }
.input-code, .ng-auth .ui-input.input-code { font: 500 24px var(--mono); letter-spacing: 0.18em; height: 52px; padding: 0 14px; }
@media (max-width: 1100px) {
  .ng-auth-hero { padding: 44px 40px; }
  .ng-auth-hero-title { font-size: 36px; }
}
@media (max-width: 900px) {
  .ng-auth { grid-template-columns: 1fr; }
  .ng-auth-hero { display: none; }
  .ng-auth .auth-brand { display: flex; }
  .ng-auth .auth-panel { padding: 28px 16px 40px; }
  .ng-auth .auth-card { padding: 22px 18px; }
}
@media (max-width: 420px) {
  .ng-account-cards { grid-template-columns: 1fr; }
}

.link-sheet .link-card { border-radius: var(--ui-radius-lg); }

.link-replace { margin: 14px 0 4px; text-align: left; }
.link-replace-list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 8px; }
.link-replace-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--ui-radius); }
.link-sheet .ui-banner { text-align: left; margin: 10px 0; }
.link-sheet .ui-steps { text-align: left; margin: 14px 0; }
.link-sheet .ui-field { text-align: left; }
.ng-fullscreen { position: fixed; inset: 0; z-index: 900; background: var(--page); display: grid; place-items: center; padding: 24px; }
.ng-fullscreen-card { max-width: 560px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--ui-radius-lg); padding: 32px; box-shadow: var(--ui-shadow-pop); }
.ng-big-icon { width: 44px; height: 44px; font-size: 20px; background: var(--red-soft); color: var(--red); margin-bottom: 14px; }

#trendChart .ui-legend, #outcomeDonut .ui-legend { margin-top: 10px; }
.act-card .ui-card-body { padding-top: 6px; }
.act-card .act-steps { margin: 0; }

.ng-drawer { width: min(640px, 100vw); }
.ng-drawer .drawer-head { padding: 18px 22px; }
.ng-drawer .drawer-body { padding: 18px 22px 32px; }
.ng-drawer .drawer-section { margin-bottom: 22px; }
.ng-drawer .drawer-section > h3 { font-size: var(--ui-text-xs); letter-spacing: 0.06em; }
.ng-drawer .kv, .ng-drawer .ui-kv { grid-template-columns: minmax(120px, 34%) 1fr; font-size: 13.5px; }
.ng-drawer .kv dd { word-break: normal; overflow-wrap: anywhere; }
.ng-drawer .ui-field { margin-bottom: 12px; }
.ng-section-help { color: var(--muted); font-size: var(--ui-text-sm); margin: -2px 0 10px; }
.drawer-summary { align-items: center; }

.pause-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.card-danger.armed { background: var(--red-soft); }
.ocr-langs-row .lang-chips { margin-top: 10px; }
.save-bar { transform: translateX(calc(-50% + 128px)); }

.suggest-card .ui-card-body { padding-top: 8px; }
.ng-flow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 4px 0 14px; }
.ng-flow > div { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: var(--panel); font-size: 12.5px; color: var(--ink-3); line-height: 1.45; }
.ng-flow > div strong { display: block; color: var(--ink); font-size: 13px; margin-bottom: 2px; }
@media (max-width: 720px) { .ng-flow { grid-template-columns: 1fr; } }
.sg-list { list-style: none; margin: 0; padding: 0; }
.sg-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 20px; border-top: 1px solid var(--line-2); flex-wrap: wrap; }
.sg-list li:first-child { border-top: 0; }
.sg-list .sg-what strong { display: block; }
.sg-list .sg-what span { color: var(--muted); font-size: 12.5px; }
.sg-actions { display: flex; gap: 8px; align-items: center; }
.rules-list { border-top: 1px solid var(--line-2); }
.ng-edm-grid { grid-template-columns: minmax(0, 1fr); max-width: 760px; }

.apps-mode { margin-bottom: 4px; }
.apps-mode .ui-lock-note { color: var(--attention-text); font-weight: 600; margin-top: 6px; }
.status-legend { margin-top: 0; }

#view-deployment .dp-guide { padding: 20px; }
.dp-try .ui-card-body { display: flex; gap: 20px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.dp-addteam { display: flex; gap: 10px; align-items: flex-end; margin-top: 14px; }

.ng-plan-top { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); margin-bottom: 8px; }
@media (max-width: 1000px) { .ng-plan-top { grid-template-columns: 1fr; } }
.ui-card.plan-hero { background: var(--hero); color: var(--hero-text); border-color: var(--hero); margin: 0; padding: 22px 24px; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 16px; }
.plan-hero .ph-top { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.plan-hero .ph-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px 18px; margin: 0; font-size: 13px; }
.plan-hero .ph-facts dt { color: var(--hero-muted); font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.06em; }
.plan-hero .ph-facts dd { margin: 2px 0 0; color: var(--hero-text); font-weight: 600; }
.plan-hero .ui-btn { align-self: flex-start; }
.plan-usage { display: flex; flex-direction: column; gap: 14px; margin: 0; }
.plan-usage .ng-meter-row span { color: var(--ink-3); }
.plan-usage .ui-help { margin-top: 4px; }
.plan-grid { margin-bottom: 16px; }
.plan-card { border-radius: var(--ui-radius); box-shadow: var(--shadow); }
.plan-card .pc-name { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.plan-card .pc-for { color: var(--muted); font-size: 12.5px; margin: -6px 0 10px; }
#buyCard .buy-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 0 14px; align-items: start; }
#buyCard .buy-total { grid-column: 1 / -1; display: block; background: var(--panel); border-radius: 10px; padding: 12px 14px; margin: 4px 0 14px; font-size: 13px; }

#buyCard .buy-body { display: flex; flex-direction: column; gap: 14px; }
#buyCard .buy-body > .ui-banner { margin: 0; }
#buyCard .buy-coupon { grid-column: 1 / -1; }
#buyCard .buy-coupon .ui-input-group { max-width: 420px; }
#buyCard .buy-sum { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; margin: 0; width: 100%; }
#buyCard .buy-sum dt { color: var(--ink-3); }
#buyCard .buy-sum dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
#buyCard .buy-sum .total { font-weight: 700; font-size: 16px; color: var(--ink); border-top: 1px solid var(--line); padding-top: 8px; margin-top: 4px; }
#buyCard .buy-total .ui-help { margin: 8px 0 0; }
.plan-card .pc-promo { background: var(--accent-soft); border-radius: 8px; padding: 6px 10px; margin: -2px 0 10px; font-size: 12.5px; line-height: 1.6; }
.plan-card .pc-promo s { color: var(--muted); }
#buyCard .buy-go { grid-column: 1 / -1; }
#buyCard .ui-span-all { grid-column: 1 / -1; margin: 8px 0 0; }
.inv-due-late { color: var(--red); font-weight: 650; }
.ng-pay { border: 1px solid var(--accent-line); background: var(--accent-soft); border-radius: 10px; padding: 12px 14px; font-size: 13.5px; line-height: 1.55; white-space: pre-wrap; }
.ng-pay strong { display: block; margin-bottom: 4px; }

#printHost { display: none; }
.inv-doc { font: 400 13px/1.5 var(--font); color: #111113; max-width: 760px; margin: 0 auto; }
.inv-doc-head { display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 2px solid #111113; padding-bottom: 14px; margin-bottom: 18px; }
.inv-doc-head h1 { font-size: 26px; margin: 0; }
.inv-doc-brand { display: flex; align-items: center; }
.inv-doc-brand .logo { height: 26px; }
.inv-doc-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 18px; }
.inv-doc h2 { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: #63636b; margin: 0 0 4px; }
.inv-doc table { width: 100%; border-collapse: collapse; margin: 10px 0 16px; }
.inv-doc th, .inv-doc td { text-align: left; padding: 8px 6px; border-bottom: 1px solid #e2e2e5; }
.inv-doc .num { text-align: right; font-variant-numeric: tabular-nums; }
.inv-doc .inv-total td { font-weight: 700; font-size: 15px; border-bottom: 2px solid #111113; }
.inv-doc-note { border: 1px solid #e2e2e5; border-radius: 8px; padding: 10px 12px; white-space: pre-wrap; }
@media print {
  @page { margin: 16mm; }
  body.ng-printing { background: #fff; }
  body.ng-printing > *:not(#printHost) { display: none !important; }
  body.ng-printing #printHost { display: block !important; }
}

#view-settings .ui-settings { align-items: start; }
#settingsPanes > .ui-card { margin: 0; }
.ui-subnav button { width: 100%; }
.ng-invite { border-top: 1px solid var(--line-2); margin-top: 14px; padding-top: 6px; }
.ng-inline-form { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }
.ng-inline-form .ui-btn { margin-bottom: 22px; }
.users-list .user-row { border-radius: 10px; }
.danger-card { border-color: var(--danger-line); }
.copy-field { margin-bottom: 14px; }
.copy-field > span.ui-label { display: block; margin-bottom: 6px; }
.passkey-list:empty { display: none; }
.passkey-list { margin-top: 8px; }

.ng-member { align-items: flex-start; }
.ng-member .member-shell { width: 100%; max-width: 880px; margin: 0 auto; padding: 8px 0 40px; }
.ng-member .member-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.ng-member .member-who { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ng-member .member-hero { margin-bottom: 16px; }
.ng-member .member-pane > .ui-card, .ng-member .member-pane > .ui-grid { margin-bottom: 16px; }
.ng-member .member-foot { color: var(--muted); font-size: 12.5px; text-align: center; margin-top: 18px; }
.ma-list { list-style: none; margin: 0; padding: 0; }
.ma-row { display: grid; grid-template-columns: 140px minmax(0, 1fr) 200px; gap: 14px; padding: 14px 20px; border-top: 1px solid var(--line-2); align-items: start; }
.ma-row:first-child { border-top: 0; }
.ma-when { font-weight: 600; font-size: 13px; }
.ma-when span { display: block; color: var(--muted); font-weight: 400; font-size: 11.5px; }
.ma-what strong { display: block; }
.ma-what > span { display: block; color: var(--muted); font-size: 12.5px; }
.ma-out { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; font-size: 12px; color: var(--muted); }
.ma-why summary { cursor: pointer; color: var(--link); font-weight: 600; font-size: 12.5px; margin-top: 4px; }
.ma-why p { margin: 6px 0 0; font-size: 12.5px; }
@media (max-width: 720px) { .ma-row { grid-template-columns: 1fr; gap: 6px; } }
.ng-status-key { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.ng-status-key > div { font-size: 12.5px; color: var(--ink-3); }
.ng-status-key .ui-badge { margin-bottom: 4px; }
@media (max-width: 720px) { .ng-status-key { grid-template-columns: 1fr; } }
.ng-inline-suggest { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; }
.ng-inline-suggest .ui-field { flex: 1; min-width: 220px; margin: 0; }

.inv-searchbox { display: flex; flex-direction: column; gap: 6px; }

@media (max-width: 900px) {
  .ng-shell .main { padding: 20px 16px 120px; }
  .ui-page-title { font-size: 24px; }
  .ui-page-head { margin-bottom: 14px; }
  .save-bar { transform: translateX(-50%); width: calc(100% - 32px); justify-content: space-between; flex-wrap: wrap; gap: 10px; }
  .ng-filter, .ng-filter .ui-select { min-width: 0; width: 100%; }
  .ng-filter-end { margin-left: 0; }
  .ui-card.ng-filters { padding: 12px 14px; }
  .ui-table th, .ui-table td { padding: 10px 12px; }
  .ui-card .ui-table-wrap .ui-table th:first-child, .ui-card .ui-table-wrap .ui-table td:first-child { padding-left: 14px; }
  .ui-card-head { padding: 14px 16px 0; flex-wrap: wrap; }
  .ui-card-body { padding: 12px 16px 16px; }
  .ui-setting { flex-wrap: wrap; }
  .choice-cards, .choice-cards.two { grid-template-columns: 1fr; }
  .dp-paths { grid-template-columns: 1fr; }
  .plan-hero .ph-top { flex-direction: column; align-items: flex-start; }
  .ng-member .member-shell { padding: 0; }
}
@media (max-width: 560px) {
  .ui-grid-4, .ui-grid-auto { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ui-kpi { padding: 12px; }
  .ui-kpi-value { font-size: 22px; }
  .ui-page-actions { width: 100%; }
  .ui-page-actions .ui-segmented { overflow-x: auto; max-width: 100%; }
  .link-card { padding: 22px 18px; }
  .ng-fullscreen-card { padding: 22px; }
}

[data-plan-badge][hidden], .ui-badge[hidden], .ui-banner[hidden] { display: none !important; }

body.personal-account #regionGrid:has(#regionSelect) { display: block; }
body.personal-account .protect-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.join-steps { counter-reset: s; list-style: none; padding: 0; margin: 18px 0 0; display: flex; flex-direction: column; gap: 14px; }
.join-steps li { counter-increment: s; display: grid; grid-template-columns: 30px 1fr; gap: 12px; align-items: start; }
.join-steps li::before { content: counter(s); width: 28px; height: 28px; border-radius: 50%; background: var(--primary); color: var(--primary-text); font-weight: 700; font-size: 13px; display: flex; align-items: center; justify-content: center; }
.join-steps strong { display: block; }
.join-steps span { color: var(--muted); font-size: 13px; }
.stores { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.join-link { display: flex; gap: 8px; margin-top: 8px; }
.join-link code { flex: 1; padding: 9px 10px; border-radius: 8px; word-break: break-all; }
.ng-join .auth-panel { max-width: 480px; }

.removed-title { font-size: 22px; }
.removed-note { margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; background: var(--paper); font-size: 13.5px; }
.removed-sub { font-size: 15px; margin: 20px 0 0; }
.protect-tile:disabled { opacity: 0.62; cursor: not-allowed; }
.protect-tile:disabled:hover { border-color: var(--line); transform: none; }

.ptab-hidden { display: none !important; }
.ng-page-tabs { margin: 0 0 20px; }
.ng-drawer-tabs { margin: 6px 0 14px; }
.ng-page-tabs .ui-tab.active { color: var(--ink); font-weight: 700; box-shadow: inset 0 -2px 0 var(--accent); }

.ng-sub-title { font-size: 17px; font-weight: 700; letter-spacing: -0.01em; margin: 22px 0 12px; }
.ng-sub-row { font-size: 15px; margin: 18px 0 2px; padding-top: 16px; border-top: 1px solid var(--line-2); }
.ng-type-list .ui-setting { gap: 14px; }
.ng-type-ico { width: 36px; height: 36px; flex: none; border-radius: 10px; display: grid; place-items: center; background: var(--panel); }
.ng-type-ico svg { width: 18px; height: 18px; fill: none; stroke: var(--muted); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ui-setting:has(.ui-switch:checked) > .ng-type-ico { background: var(--accent-soft); }
.ui-setting:has(.ui-switch:checked) > .ng-type-ico svg { stroke: var(--accent-text); }
.ui-setting:has(.ng-choice) { flex-wrap: wrap; }
.ui-setting:has(.ng-choice) .ui-setting-text { flex: 1 1 280px; }
.ng-choice { flex-wrap: wrap; }
.ng-choice button { height: 32px; padding: 0 12px; font-size: 13px; }
.ng-answers { border-top: 1px solid var(--line-2); margin-top: 8px; }
.ng-pause.ui-card { background: var(--danger-soft); border-color: var(--danger-line); }
.ng-pause .ui-card-title { color: var(--danger-text); }
.ng-pause .ui-card-desc { color: var(--ink-2); }
.ng-pause .ui-btn-danger { background: var(--surface); color: var(--danger-text); border-color: var(--danger-line); }
.ng-pause .ui-btn-danger:hover { background: var(--danger); color: #fff; border-color: var(--danger); filter: none; }
.ng-pause.armed .ui-btn-primary { background: var(--primary); }
.chip-list li { height: 34px; padding: 0 6px 0 12px; border-radius: 999px; font-size: 13px; }
#allowInput { border-style: dashed; border-radius: 999px; }
.ng-theme-help { margin: 10px 0 0; }
.ui-setting:has(.ng-choice) .ui-setting-control { flex-shrink: 1; min-width: 0; max-width: 100%; }

.ng-grid-pair { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.ng-worth { list-style: none; margin: 0; padding: 0; }
.ng-worth > li + li { border-top: 1px solid var(--line-2); }
.ng-worth-item { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 14px; align-items: center; width: 100%; padding: 14px 22px; border: 0; background: none; text-align: left; font: inherit; color: inherit; cursor: pointer; }
.ng-worth-item:hover { background: var(--row-hover); }
.ng-worth-item:focus-visible { outline: none; box-shadow: inset var(--ui-focus); }
.ng-worth-ico { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font: 700 13px var(--font); background: var(--panel); color: var(--ink-3); }
.ng-worth-ico.is-high { background: var(--danger-soft); color: var(--danger-text); }
.ng-worth-ico.is-medium { background: var(--attention-soft); color: var(--attention-text); }
.ng-worth-text { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.ng-worth-text strong { font-size: 14.5px; font-weight: 600; overflow-wrap: anywhere; }
.ng-worth-text > span { font-size: 13px; color: var(--muted); line-height: 1.45; }
.ng-worth-go { font-size: 13px; font-weight: 600; color: var(--link); white-space: nowrap; }
.ng-worth-go::after { content: " →"; }
@media (max-width: 640px) { .ng-worth-item { grid-template-columns: 28px minmax(0, 1fr); } .ng-worth-go { grid-column: 2; } }

.inv-try { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 4px; }
.inv-try-label { font-size: 12.5px; color: var(--muted); }
.inv-try-chip { height: 32px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--ink-2); font: 500 13px var(--font); cursor: pointer; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.inv-try-chip:hover { border-color: var(--accent); }
.inv-try-chip:focus-visible { outline: none; box-shadow: var(--ui-focus); }

.ng-example { margin-top: 6px; font-size: 13px; }
.ng-example > summary { cursor: pointer; color: var(--link); font-weight: 600; width: max-content; max-width: 100%; }
.ng-example > summary:focus-visible { outline: none; box-shadow: var(--ui-focus); border-radius: 4px; }
.ng-example > p { margin: 6px 0 0; padding: 10px 12px; border-radius: 10px; background: var(--panel); color: var(--ink-2); line-height: 1.5; }

.ng-strict-cards .choice-card { gap: 8px; }
.cc-for { font-size: 12.5px; font-weight: 650; color: var(--accent-text); }
.cc-note { font-size: 12.5px; color: var(--ink-2); line-height: 1.45; padding: 8px 10px; border-radius: 10px; background: var(--panel); }
.cc-list { list-style: none; margin: 2px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.cc-list li { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; line-height: 1.4; color: var(--ink-2); }
.cc-list svg { flex: 0 0 16px; width: 16px; height: 16px; margin-top: 1px; fill: none; stroke: var(--accent-text); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ng-strict-note { display: flex; gap: 8px; align-items: center; margin: 14px 0 0; font-size: 13.5px; font-weight: 600; color: var(--ink-2); }
.ng-strict-note svg { flex: 0 0 18px; width: 18px; height: 18px; fill: none; stroke: var(--accent-text); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ng-ex-msg { font-family: var(--mono, monospace); font-size: 12.5px; }
.choice-card.is-unavailable { opacity: 0.62; cursor: not-allowed; }

.nav-badge { margin-left: auto; font: 700 11px var(--font); background: var(--side-badge-bg); color: var(--side-badge-text); border-radius: 999px; padding: 2px 8px; white-space: nowrap; }
.nav-badge.is-setup { background: var(--accent-strong); color: #ffffff; box-shadow: 0 0 0 2px rgba(254, 80, 0, .25); }
.ng-tab-badge { margin-left: 6px; font: 700 11px var(--font); background: var(--accent-soft); color: var(--accent-text); border: 1px solid var(--accent-line); border-radius: 999px; padding: 1px 7px; }
.ng-feat-badge { margin-left: 6px; vertical-align: 1px; }
.ng-feat-badge.is-on { background: var(--accent-soft); color: var(--accent-text); border: 1px solid var(--accent-line); }

.ng-kind-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
body.personal-account .ng-kind-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.ng-format-pick { flex-wrap: wrap; height: auto; }
.ng-smart-row { padding: 12px 0; margin-bottom: 8px; }
.ng-smart-row.is-locked .ui-setting-title { color: var(--muted); }
.rules-group-title { padding: 14px 22px 6px; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.rules-group-title:first-child { padding-top: 6px; }

.ng-onboard { border-color: var(--accent-line); }
.ng-onboard-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.ng-onboard-chips button { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 10px 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: 600 13.5px var(--font); text-align: left; cursor: pointer; max-width: 100%; }
.ng-onboard-chips button small { font-weight: 500; font-size: 12px; color: var(--muted); }
.ng-onboard-chips button:hover { border-color: var(--accent); }
.ng-onboard-chips button:focus-visible { outline: none; box-shadow: var(--ui-focus); }

.ui-lock-note.ng-country-lock { display: block; margin-top: 8px; }
