/*
 * GSMVanta Mobile Workspace R225
 * Phone-first interaction layer shared by admin, customer, public, auth and installer.
 * Loaded after the structural styles so every mobile screen receives one final system.
 */
.gv3-mobile-close{display:none}
@media (max-width: 820px) {
  html { width:100%; max-width:100%; overflow-x:hidden; -webkit-text-size-adjust:100%; }
  body { width:100%; max-width:100%; overflow-x:hidden; }
  button, a, input, select, textarea, summary { touch-action:manipulation; }
  input, select, textarea { font-size:16px !important; }

  /* Main GSMVanta admin/customer shell */
  body.gv-root-r227 {
    --gv-mobile-edge: 10px;
    --gv-mobile-radius: 14px;
    --gv-mobile-control: 46px;
    font-size:14px;
  }
  body.gv-root-r227 .gv3-shell { display:block; min-height:100dvh; }
  body.gv-root-r227 .gv3-main { width:100%; min-width:0; min-height:100dvh; }
  body.gv-root-r227 .gv3-sidebar {
    width:min(338px,calc(100vw - 42px));
    max-width:calc(100vw - 42px);
    height:100dvh;
    padding-bottom:env(safe-area-inset-bottom);
    transform:translate3d(-105%,0,0);
    transition:transform .22s ease;
    overscroll-behavior:contain;
    will-change:transform;
  }
  html[dir="rtl"] body.gv-root-r227 .gv3-sidebar { transform:translate3d(105%,0,0); }
  body.gv-root-r227 .gv3-shell.gv3-open .gv3-sidebar { transform:translate3d(0,0,0); }
  body.gv-root-r227 .gv3-side-head {
    min-height:66px;
    height:auto;
    padding:10px 12px 10px max(12px,env(safe-area-inset-left));
    gap:8px;
  }
  html[dir="rtl"] body.gv-root-r227 .gv3-side-head { padding-inline:max(12px,env(safe-area-inset-right)) 12px; }
  body.gv-root-r227 .gv3-brand-mark { width:40px; height:40px; border-radius:11px; }
  body.gv-root-r227 .gv3-brand-word b { font-size:14px; }
  body.gv-root-r227 .gv3-mobile-close {
    margin-inline-start:auto;
    width:38px;
    height:38px;
    padding:0;
    border:1px solid rgba(255,255,255,.12);
    border-radius:10px;
    background:rgba(255,255,255,.055);
    color:#fff;
    display:grid;
    place-items:center;
  }
  body.gv-root-r227 .gv3-nav { padding:10px 9px 18px; }
  body.gv-root-r227 .gv3-nav-section { margin-bottom:12px; }
  body.gv-root-r227 .gv3-sec { height:30px; padding-inline:10px; }
  body.gv-root-r227 .gv3-item { min-height:45px; padding:10px 12px; border-radius:10px; font-size:13px; }
  body.gv-root-r227 .gv3-subitem { min-height:42px; padding:9px 10px; font-size:12.5px; }
  body.gv-root-r227 .gv3-side-foot { padding:10px 9px max(10px,env(safe-area-inset-bottom)); }
  body.gv-root-r227 .gv3-overlay {
    background:rgba(2,8,18,.64);
    backdrop-filter:blur(2px);
    -webkit-backdrop-filter:blur(2px);
  }

  body.gv-root-r227 .gv3-topbar {
    position:sticky;
    top:0;
    z-index:60;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"start end" "search search";
    align-items:center;
    gap:8px;
    min-height:0;
    padding:max(8px,env(safe-area-inset-top)) var(--gv-mobile-edge) 9px;
    background:color-mix(in srgb,var(--gv-surface) 97%,transparent);
    border-bottom:1px solid var(--gv-border);
  }
  body.gv-root-r227 .gv3-top-start { grid-area:start; min-width:0; gap:8px; }
  body.gv-root-r227 .gv3-top-end { grid-area:end; min-width:0; gap:6px; margin:0; }
  body.gv-root-r227 .gv-global-search { grid-area:search; width:100%; min-width:0; }
  body.gv-root-r227 .gv-global-search-box {
    display:grid;
    grid-template-columns:18px minmax(0,1fr);
    gap:8px;
    width:100%;
    height:43px;
    padding:0 12px;
    border-radius:11px;
    overflow:hidden;
  }
  body.gv-root-r227 .gv-global-search-input { width:100%; min-width:0; font-size:14px !important; }
  body.gv-root-r227 .gv-global-search-results {
    position:fixed;
    top:auto;
    left:var(--gv-mobile-edge);
    right:var(--gv-mobile-edge);
    max-height:min(58dvh,460px);
    margin-top:7px;
    border-radius:14px;
  }
  body.gv-root-r227 .gv3-hamburger { display:inline-flex; width:40px; min-width:40px; height:40px; padding:0; }
  body.gv-root-r227 .gv3-collapse-top, body.gv-root-r227 .gv3-back-button { display:none !important; }
  body.gv-root-r227 .gv3-crumb { min-width:0; display:grid; align-content:center; }
  body.gv-root-r227 .gv3-crumb span { display:none; }
  body.gv-root-r227 .gv3-crumb b {
    display:block;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:15px;
    line-height:1.2;
  }
  body.gv-root-r227 .gv3-iconbtn { width:40px; min-width:40px; height:40px; padding:0; border-radius:10px; }
  body.gv-root-r227 .gv3-top-end .gv3-user { display:none !important; }
  body.gv-root-r227 .gv3-menu {
    position:fixed;
    top:58px;
    left:10px;
    right:10px;
    width:auto;
    max-height:60dvh;
    overflow:auto;
    border-radius:14px;
  }

  body.gv-root-r227 .gv3-content {
    width:100%;
    padding:16px var(--gv-mobile-edge) calc(54px + env(safe-area-inset-bottom));
  }
  body.gv-root-r227 .gv-page-frame { width:100%; gap:16px; }
  body.gv-root-r227 h1 { font-size:clamp(25px,8.2vw,31px); line-height:1.16; letter-spacing:-.035em; }
  body.gv-root-r227 h2 { font-size:17px; }
  body.gv-root-r227 .eyebrow, body.gv-root-r227 .page-head .eyebrow { margin-bottom:6px; font-size:9px; }
  body.gv-root-r227 .page-head,
  body.gv-root-r227 .gv-dashboard-hero {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    align-items:start;
    gap:12px;
    padding:0 2px;
  }
  body.gv-root-r227 .page-head p,
  body.gv-root-r227 .gv-dashboard-hero p { max-width:none; font-size:13px; line-height:1.55; }
  body.gv-root-r227 .page-actions {
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  body.gv-root-r227 .page-actions > *,
  body.gv-root-r227 .page-actions .button,
  body.gv-root-r227 .page-actions .btn { width:100%; min-width:0; white-space:normal; text-align:center; }
  body.gv-root-r227 .gv-update-alert { align-items:stretch; flex-direction:column; padding:13px; }
  body.gv-root-r227 .gv-update-alert .button { width:100%; }

  body.gv-root-r227 .button,
  body.gv-root-r227 .btn,
  body.gv-root-r227 button.button,
  body.gv-root-r227 a.button {
    min-height:var(--gv-mobile-control);
    padding-inline:14px;
    border-radius:10px;
    font-size:12.5px;
  }
  body.gv-root-r227 .button.small, body.gv-root-r227 .btn.small { min-height:40px; }
  body.gv-root-r227 .icon-action { width:40px; height:40px; }

  body.gv-root-r227 .metric-grid,
  body.gv-root-r227 .stats-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
  }
  body.gv-root-r227 .metric-card,
  body.gv-root-r227 .stat-card,
  body.gv-root-r227 .campaign-kpi,
  body.gv-root-r227 .update-metric {
    min-height:118px;
    padding:14px;
    gap:10px;
    border-radius:var(--gv-mobile-radius);
  }
  body.gv-root-r227 .metric-top { align-items:flex-start; gap:8px; font-size:10px; line-height:1.25; }
  body.gv-root-r227 .metric-icon,
  body.gv-root-r227 .stat-icon { width:34px; height:34px; border-radius:9px; }
  body.gv-root-r227 .metric-value { font-size:clamp(23px,7vw,28px); }
  body.gv-root-r227 .metric-sub { font-size:9.5px; line-height:1.35; }

  body.gv-root-r227 .grid-main,
  body.gv-root-r227 .dashboard-grid,
  body.gv-root-r227 .settings-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
  body.gv-root-r227 .dashboard-column { gap:16px; }
  body.gv-root-r227 .dashboard-grid > .dashboard-column:last-child { min-width:0; }

  body.gv-root-r227 .panel,
  body.gv-root-r227 .panel-card,
  body.gv-root-r227 .settings-section,
  body.gv-root-r227 .section,
  body.gv-root-r227 .card,
  body.gv-root-r227 .service-editor-section { border-radius:var(--gv-mobile-radius); }
  body.gv-root-r227 .panel-head,
  body.gv-root-r227 .card-head,
  body.gv-root-r227 .settings-section > header,
  body.gv-root-r227 .service-editor-section-head {
    min-height:0;
    padding:14px;
    gap:10px;
    align-items:center;
  }
  body.gv-root-r227 .panel-head h2,
  body.gv-root-r227 .card-head h2 { font-size:16px; }
  body.gv-root-r227 .panel-head small,
  body.gv-root-r227 .card-head small { font-size:10px; line-height:1.35; }
  body.gv-root-r227 .panel-body,
  body.gv-root-r227 .settings-section-body,
  body.gv-root-r227 .service-editor-section-body { padding:14px !important; gap:15px; }
  body.gv-root-r227 .stack { gap:14px; }

  body.gv-root-r227 .field-row,
  body.gv-root-r227 .form-grid,
  body.gv-root-r227 .settings-field-grid,
  body.gv-root-r227 .settings-choice-grid,
  body.gv-root-r227 .service-toggle,
  body.gv-root-r227 .fulfillment-choice { grid-template-columns:minmax(0,1fr); gap:12px; }
  body.gv-root-r227 .col-12,
  body.gv-root-r227 .col-9,
  body.gv-root-r227 .col-6,
  body.gv-root-r227 .col-4,
  body.gv-root-r227 .col-3,
  body.gv-root-r227 .col-2,
  body.gv-root-r227 .settings-span-12,
  body.gv-root-r227 .settings-span-6,
  body.gv-root-r227 .settings-span-4,
  body.gv-root-r227 .settings-span-3,
  body.gv-root-r227 .span-2 { grid-column:auto; }
  body.gv-root-r227 .field { gap:6px; }
  body.gv-root-r227 .field > label, body.gv-root-r227 label { font-size:11.5px; }
  body.gv-root-r227 .input,
  body.gv-root-r227 input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]),
  body.gv-root-r227 select,
  body.gv-root-r227 textarea { min-height:var(--gv-mobile-control); padding:11px 12px; border-radius:10px; }
  body.gv-root-r227 textarea { min-height:118px; }
  body.gv-root-r227 .inline-form { display:grid; grid-template-columns:minmax(0,1fr); align-items:stretch; gap:9px; }
  body.gv-root-r227 .inline-form > * { width:100%; }
  body.gv-root-r227 .checkbox-row { min-height:46px; padding:11px; }
  body.gv-root-r227 .custom-file-picker { align-items:stretch; flex-direction:column; }
  body.gv-root-r227 .custom-file-button { min-height:42px; justify-content:center; }

  body.gv-root-r227 .filter-bar,
  body.gv-root-r227 .campaign-filters {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    align-items:stretch;
    gap:10px;
    padding:12px;
    border-radius:var(--gv-mobile-radius);
  }
  body.gv-root-r227 .filter-bar > *,
  body.gv-root-r227 .filter-bar > .field,
  body.gv-root-r227 .campaign-filters > * { width:100%; min-width:0; flex:none; }
  body.gv-root-r227 .filter-bar .button,
  body.gv-root-r227 .filter-bar .btn,
  body.gv-root-r227 .campaign-filters .button,
  body.gv-root-r227 .campaign-filters .btn { width:100%; }
  body.gv-root-r227 .tabs,
  body.gv-root-r227 .order-filter-tabs,
  body.gv-root-r227 .service-editor-nav,
  body.gv-root-r227 .settings-nav {
    width:calc(100% + (var(--gv-mobile-edge) * 2));
    margin-inline:calc(var(--gv-mobile-edge) * -1);
    padding:5px var(--gv-mobile-edge);
    border-inline:0;
    border-radius:0;
    overflow-x:auto;
    scroll-snap-type:x proximity;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
    position:relative;
    top:auto;
  }
  body.gv-root-r227 .tab,
  body.gv-root-r227 .type-tab,
  body.gv-root-r227 .order-filter-tabs a,
  body.gv-root-r227 .order-filter-tabs button,
  body.gv-root-r227 .service-editor-nav-link,
  body.gv-root-r227 .settings-nav-item { min-height:39px; scroll-snap-align:start; flex:0 0 auto; }

  /* Every table keeps every field on phones: rows become readable cards. */
  body.gv-root-r227 .table-wrap.gv-mobile-table-wrap,
  body.gv-root-r227 .gv-data-scroll.gv-mobile-table-wrap { overflow:visible; border-radius:0; }
  body.gv-root-r227 table.gv-mobile-card-table {
    display:block;
    width:100%;
    min-width:0 !important;
    border:0;
    background:transparent;
  }
  body.gv-root-r227 table.gv-mobile-card-table thead { display:none; }
  body.gv-root-r227 table.gv-mobile-card-table tbody { display:grid; gap:10px; padding:10px; }
  body.gv-root-r227 table.gv-mobile-card-table tr {
    display:grid;
    min-width:0;
    border:1px solid var(--gv-border);
    border-radius:12px;
    background:var(--gv-surface);
    overflow:hidden;
  }
  body.gv-root-r227 table.gv-mobile-card-table td {
    display:grid;
    grid-template-columns:minmax(92px,.42fr) minmax(0,1fr);
    align-items:start;
    gap:10px;
    min-width:0;
    padding:10px 12px;
    border:0;
    border-bottom:1px solid var(--gv-border);
    background:transparent !important;
    text-align:start !important;
    white-space:normal !important;
    overflow-wrap:anywhere;
  }
  body.gv-root-r227 table.gv-mobile-card-table td:last-child { border-bottom:0; }
  body.gv-root-r227 table.gv-mobile-card-table td::before {
    content:attr(data-gv-label);
    color:var(--gv-muted);
    font-size:9px;
    font-weight:800;
    letter-spacing:.055em;
    line-height:1.35;
    text-transform:uppercase;
  }
  body.gv-root-r227 table.gv-mobile-card-table td[data-gv-label=""]::before { display:none; }
  body.gv-root-r227 table.gv-mobile-card-table td.gv-mobile-actions-cell {
    grid-template-columns:1fr;
    gap:8px;
  }
  body.gv-root-r227 table.gv-mobile-card-table td.gv-mobile-actions-cell::before { margin-bottom:1px; }
  body.gv-root-r227 table.gv-mobile-card-table td.gv-mobile-actions-cell > * { max-width:100%; }
  body.gv-root-r227 table.gv-mobile-card-table td.gv-mobile-actions-cell .button,
  body.gv-root-r227 table.gv-mobile-card-table td.gv-mobile-actions-cell .btn { flex:1 1 auto; }
  body.gv-root-r227 table.gv-mobile-card-table td[colspan] { grid-template-columns:1fr; }
  body.gv-root-r227 table.gv-mobile-card-table td[colspan]::before { display:none; }
  body.gv-root-r227 .table-wrap:not(.gv-mobile-table-wrap),
  body.gv-root-r227 .gv-data-scroll:not(.gv-mobile-table-wrap) {
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    border:1px solid var(--gv-border);
    border-radius:12px;
  }
  body.gv-root-r227 .table-wrap:not(.gv-mobile-table-wrap) .table,
  body.gv-root-r227 .gv-data-scroll:not(.gv-mobile-table-wrap) .table { min-width:680px; }

  body.gv-root-r227 .dashboard-tool-grid-r195 { grid-template-columns:minmax(0,1fr); gap:9px; }
  body.gv-root-r227 .dashboard-tool-grid-r195 > a,
  body.gv-root-r227 .dashboard-state-list-r195 > a,
  body.gv-root-r227 .dashboard-provider-r195 { min-height:66px; padding:12px; border-radius:11px; }
  body.gv-root-r227 .detail-item { grid-template-columns:minmax(0,1fr); gap:4px; padding:12px; }
  body.gv-root-r227 .message-bubble { max-width:94%; }
  body.gv-root-r227 .secret-box,
  body.gv-root-r227 .system-code,
  body.gv-root-r227 .payload-box,
  body.gv-root-r227 .muted-block { max-width:100%; overflow:auto; }
  body.gv-root-r227 .gv-powered-watermark { right:50%; bottom:max(2px,env(safe-area-inset-bottom)); transform:translateX(50%); }

  /* Legacy selectable shells use the same phone geometry. */
  body.gv-template-default .sidebar,
  body.gv-template-aurora .au-sidebar {
    width:min(338px,calc(100vw - 42px));
    max-width:calc(100vw - 42px);
    height:100dvh;
  }
  body.gv-template-default .topbar,
  body.gv-template-aurora .au-topbar {
    min-height:60px;
    padding:max(8px,env(safe-area-inset-top)) 10px 8px;
    gap:7px;
  }
  body.gv-template-default .content-wrap,
  body.gv-template-aurora .au-content { padding:14px 10px calc(50px + env(safe-area-inset-bottom)); }
  body.gv-template-default .top-actions .env-badge,
  body.gv-template-default .top-actions .avatar,
  body.gv-template-default .notification-button,
  body.gv-template-aurora .au-live,
  body.gv-template-aurora .au-user,
  body.gv-template-aurora .au-bell { display:none !important; }

  /* Commercial portal panel */
  body.panel-body .panel-sidebar {
    width:min(338px,calc(100vw - 42px));
    max-width:calc(100vw - 42px);
    height:100dvh;
    padding-bottom:env(safe-area-inset-bottom);
  }
  body.panel-body .panel-topbar {
    position:sticky;
    top:0;
    z-index:50;
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    grid-template-areas:"toggle title actions" "search search search";
    gap:8px;
    padding:max(8px,env(safe-area-inset-top)) 10px 9px;
  }
  body.panel-body .sidebar-toggle { grid-area:toggle; width:40px; height:40px; }
  body.panel-body .panel-title-block { grid-area:title; min-width:0; }
  body.panel-body .panel-title-block h1 { margin:0; font-size:15px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  body.panel-body .panel-title-block small { display:none; }
  body.panel-body .panel-topbar-actions { grid-area:actions; gap:6px; }
  body.panel-body .panel-global-search { grid-area:search; width:100%; min-width:0; }
  body.panel-body .panel-global-search input { min-width:0; font-size:14px !important; }
  body.panel-body .panel-global-search kbd { display:none; }
  body.panel-body .panel-search-results { position:fixed; left:10px; right:10px; width:auto; max-height:58dvh; }
  body.panel-body .panel-content { padding:14px 10px calc(50px + env(safe-area-inset-bottom)); }
  body.panel-body .stats-grid,
  body.panel-body .stats-grid-modern,
  body.panel-body .release-stats-grid,
  body.panel-body .update-coverage-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  body.panel-body .stats-grid > article,
  body.panel-body .stat-card { min-height:112px; padding:14px; border-radius:13px; }
  body.panel-body .stats-grid strong,
  body.panel-body .stat-card strong { font-size:24px; }
  body.panel-body .panel-card { padding:14px; margin-bottom:14px; border-radius:14px; }
  body.panel-body .dashboard-grid,
  body.panel-body .product-detail-grid,
  body.panel-body .purchase-layout,
  body.panel-body .release-workspace,
  body.panel-body .form-grid,
  body.panel-body .license-grid { grid-template-columns:minmax(0,1fr); gap:13px; }
  body.panel-body .card-head,
  body.panel-body .admin-hero { display:grid; grid-template-columns:minmax(0,1fr); gap:11px; }
  body.panel-body .admin-hero-actions,
  body.panel-body .row-actions,
  body.panel-body .release-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; gap:8px; }
  body.panel-body .admin-hero-actions > *,
  body.panel-body .row-actions > *,
  body.panel-body .release-actions > * { width:100%; min-width:0; }
  body.panel-body .filter-bar { display:grid; grid-template-columns:minmax(0,1fr); align-items:stretch; gap:9px; }
  body.panel-body .filter-bar input,
  body.panel-body .filter-bar select,
  body.panel-body .filter-bar .btn { width:100%; min-width:0; }
  body.panel-body .table-wrap.gv-mobile-table-wrap { overflow:visible; border:0; }
  body.panel-body table.gv-mobile-card-table { display:block; min-width:0 !important; width:100%; }
  body.panel-body table.gv-mobile-card-table thead { display:none; }
  body.panel-body table.gv-mobile-card-table tbody { display:grid; gap:10px; }
  body.panel-body table.gv-mobile-card-table tr { display:grid; border:1px solid var(--q-border); border-radius:12px; background:var(--q-card); overflow:hidden; }
  body.panel-body table.gv-mobile-card-table td { display:grid; grid-template-columns:minmax(92px,.42fr) minmax(0,1fr); gap:9px; padding:10px 11px; border:0; border-bottom:1px solid var(--q-border); white-space:normal; overflow-wrap:anywhere; }
  body.panel-body table.gv-mobile-card-table td:last-child { border-bottom:0; }
  body.panel-body table.gv-mobile-card-table td::before { content:attr(data-gv-label); color:var(--q-muted); font-size:9px; font-weight:850; text-transform:uppercase; letter-spacing:.05em; }
  body.panel-body table.gv-mobile-card-table td.gv-mobile-actions-cell { grid-template-columns:1fr; }
  body.panel-body table.gv-mobile-card-table td[colspan] { grid-template-columns:1fr; }
  body.panel-body table.gv-mobile-card-table td[colspan]::before { display:none; }
  body.panel-body details.replace-release > form { position:fixed; left:10px; right:10px; bottom:10px; top:auto; width:auto; max-height:70dvh; overflow:auto; }

  /* Public storefront and marketing pages */
  body.site-body .site-header,
  .hv3-header-inner,
  .gv-public-header { padding-inline:max(10px,env(safe-area-inset-left)) max(10px,env(safe-area-inset-right)); }
  body.site-body .site-header { min-height:62px; gap:7px; }
  body.site-body .site-header[data-menu-open="true"] .site-nav {
    position:fixed;
    top:68px;
    left:10px;
    right:10px;
    max-height:calc(100dvh - 82px);
    overflow:auto;
    border-radius:14px;
  }
  body.site-body .header-actions .btn { display:none; }
  body.site-body .hero,
  body.site-body .section,
  body.site-body .cta { width:calc(100% - 20px); }
  body.site-body .hero { padding:40px 0 34px; gap:24px; }
  body.site-body .hero-copy h1 { font-size:clamp(36px,12vw,48px); }
  body.site-body .hero-actions { display:grid; grid-template-columns:minmax(0,1fr); }
  body.site-body .hero-actions .btn { width:100%; }
  body.site-body .feature-grid,
  body.site-body .workflow-grid,
  body.site-body .demo-actions,
  body.site-body .demo-section,
  body.site-body .pricing-section,
  body.site-body .site-footer { grid-template-columns:minmax(0,1fr); }
  body.site-body .feature-card { min-height:0; padding:18px; }
  body.site-body .feature-card h3 { margin-top:20px; }
  body.site-body .dashboard-mock { grid-template-columns:50px minmax(0,1fr); min-width:0; }

  .hv3-container { width:calc(100% - 20px); }
  .hv3-header-menu { left:10px; right:10px; max-height:calc(100dvh - 76px); overflow:auto; }
  .hv3-hero { padding:40px 0 34px; }
  .hv3-hero h1 { font-size:clamp(35px,11vw,46px); }
  .hv3-workspace-grid { grid-template-columns:minmax(0,1fr); }
  .hv3-catalog-main { padding:26px 0 48px; }
  .hv3-catalog-tabs { width:calc(100% + 20px); margin-inline:-10px; padding-inline:10px; }
  .gv-page-main { padding:20px 10px; }
  .gv-page-card { padding:18px 14px; border-radius:14px; }

  /* Login, registration, recovery and maintenance */
  body.login-body,
  body.auth-body { min-height:100dvh; padding:0; align-items:stretch; }
  body.login-body .login-shell,
  body.login-body .standalone-auth,
  body.auth-body .auth-shell {
    width:100%;
    min-height:100dvh;
    margin:0;
    padding:calc(24px + env(safe-area-inset-top)) 18px calc(28px + env(safe-area-inset-bottom));
    border:0;
    border-radius:0;
  }
  body.login-body .login-form { min-height:100dvh; padding:calc(24px + env(safe-area-inset-top)) 18px calc(28px + env(safe-area-inset-bottom)); }
  body.login-body .login-form::before { margin-bottom:28px; }
  body.login-body .login-form h1,
  body.auth-body .auth-shell h1 { font-size:28px; }
  body.login-body .field-row,
  body.auth-body .form-grid { grid-template-columns:minmax(0,1fr); }
  body.login-body .button,
  body.login-body .btn,
  body.auth-body .btn { min-height:48px; width:100%; }

  /* Installer is a phone workflow, not a squeezed desktop card. */
  body.gv-installer-body { min-height:100dvh; }
  body.gv-installer-body .gv-installer-header { min-height:60px; padding:max(8px,env(safe-area-inset-top)) 10px 8px; }
  body.gv-installer-body .gv-installer-page { padding:10px 8px calc(38px + env(safe-area-inset-bottom)); }
  body.gv-installer-body .gv-installer-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
  body.gv-installer-body .gv-installer-aside { padding:18px 14px; border-radius:14px; }
  body.gv-installer-body .gv-installer-aside h1 { font-size:27px; }
  body.gv-installer-body .gv-installer-steps {
    display:flex;
    width:calc(100% + 28px);
    margin-inline:-14px;
    padding:0 14px 3px;
    overflow-x:auto;
    gap:8px;
    scroll-snap-type:x proximity;
  }
  body.gv-installer-body .gv-installer-step { flex:0 0 min(230px,78vw); min-width:0; scroll-snap-align:start; }
  body.gv-installer-body .gv-installer-main { border-radius:14px; }
  body.gv-installer-body .gv-installer-page-head,
  body.gv-installer-body .gv-installer-section,
  body.gv-installer-body .gv-installer-requirements,
  body.gv-installer-body .gv-installer-actionbar { padding:15px 14px; }
  body.gv-installer-body .gv-installer-page-head { display:grid; grid-template-columns:minmax(0,1fr); gap:9px; }
  body.gv-installer-body .gv-installer-domain { width:100%; text-align:start; overflow-wrap:anywhere; }
  body.gv-installer-body .gv-installer-fields,
  body.gv-installer-body .gv-installer-section,
  body.gv-installer-body .gv-installer-requirements,
  body.gv-installer-body .gv-installer-success { grid-template-columns:minmax(0,1fr); }
  body.gv-installer-body .gv-installer-field.span-2 { grid-column:auto; }
  body.gv-installer-body .gv-installer-actionbar { display:grid; grid-template-columns:minmax(0,1fr); gap:9px; }
  body.gv-installer-body .gv-installer-button { width:100%; min-height:48px; }
}

@media (max-width: 520px) {
  body.gv-root-r227 { --gv-mobile-edge:8px; }
  body.gv-root-r227 .gv3-top-end .gv3-bell { display:none; }
  body.gv-root-r227 .gv3-content { padding-top:13px; }
  body.gv-root-r227 .metric-card,
  body.gv-root-r227 .stat-card { min-height:112px; padding:12px; }
  body.gv-root-r227 .metric-icon,
  body.gv-root-r227 .stat-icon { width:32px; height:32px; }
  body.gv-root-r227 .panel-head .button.small,
  body.gv-root-r227 .card-head .button.small { min-height:36px; padding-inline:10px; }
  body.gv-root-r227 table.gv-mobile-card-table tbody { padding:8px; }
  body.gv-root-r227 table.gv-mobile-card-table td { grid-template-columns:minmax(82px,.4fr) minmax(0,1fr); padding:10px; }
  body.panel-body .panel-topbar-actions .language-switcher { display:block; }
  body.panel-body .stats-grid,
  body.panel-body .stats-grid-modern,
  body.panel-body .release-stats-grid,
  body.panel-body .update-coverage-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 360px) {
  body.gv-root-r227 .page-actions { grid-template-columns:minmax(0,1fr); }
  body.gv-root-r227 .metric-grid,
  body.gv-root-r227 .stats-grid { grid-template-columns:minmax(0,1fr); }
  body.panel-body .stats-grid,
  body.panel-body .stats-grid-modern,
  body.panel-body .release-stats-grid,
  body.panel-body .update-coverage-stats { grid-template-columns:minmax(0,1fr); }
  body.panel-body .admin-hero-actions,
  body.panel-body .row-actions,
  body.panel-body .release-actions { grid-template-columns:minmax(0,1fr); }
}


/* R225 mobile page-specific corrections */
@media (max-width:820px){
  body.gv-root-r227 .service-catalog-control-row{
    display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:9px!important;
  }
  body.gv-root-r227 .service-type-tabs,
  body.gv-root-r227 .service-view-actions{
    width:calc(100% + 20px)!important;margin-inline:-10px!important;padding-inline:10px!important;
    overflow-x:auto!important;flex-wrap:nowrap!important;scrollbar-width:none;
  }
  body.gv-root-r227 .service-type-tabs::-webkit-scrollbar,
  body.gv-root-r227 .service-view-actions::-webkit-scrollbar{display:none}
  body.gv-root-r227 .service-type-tabs>* ,
  body.gv-root-r227 .service-view-actions>*{flex:0 0 auto!important;width:auto!important}
  body.gv-root-r227 .service-catalog-filter-row{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;margin-bottom:14px!important}
  body.gv-root-r227 .service-live-search,
  body.gv-root-r227 .service-group-trigger{min-height:46px!important}
  body.gv-root-r227 .catalog-group{padding:12px!important;margin:0 0 14px!important;border-radius:14px!important}
  body.gv-root-r227 .catalog-group-head{padding:2px 2px 10px!important;margin:0!important}
  body.gv-root-r227 .service-grid{grid-template-columns:minmax(0,1fr)!important;gap:10px!important}
  body.gv-root-r227 .service-card{min-height:0!important;padding:14px!important;border-radius:12px!important}
  body.gv-root-r227 .service-card-foot{align-items:center!important;flex-direction:row!important;gap:10px!important}
  body.gv-root-r227 .service-order-button{width:auto!important;min-width:96px!important}
  body.gv-root-r227 .service-list-wrap{overflow:visible!important;border:0!important}
  body.gv-root-r227 .service-list-table.gv-mobile-card-table tbody{padding:0!important}
  body.gv-root-r227 .service-list-table.gv-mobile-card-table tr{border-color:var(--gv-border-strong)!important}
  body.gv-root-r227 .payment-methods-table-panel .table-wrap.gv-mobile-table-wrap{overflow:visible!important}
  body.gv-root-r227 .payment-methods-table-panel table.gv-mobile-card-table tr{border-color:var(--gv-border-strong)!important}
  body.gv-root-r227 .payment-methods-table-panel table.gv-mobile-card-table td:first-child{min-width:0!important}
  body.gv-root-r227 .payment-methods-table-panel .admin-method-name{min-width:0}
  body.gv-root-r227 .settings-sections-nav{
    width:calc(100% + 20px);margin-inline:-10px;padding-inline:10px;overflow-x:auto;flex-wrap:nowrap!important;
  }
  body.gv-root-r227 .settings-section>.panel-head{align-items:flex-start}
  body.gv-root-r227 .settings-section-icon{margin-inline-start:auto}
}
@media(max-width:420px){
  body.gv-root-r227 .service-card-foot{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important}
  body.gv-root-r227 .service-price{white-space:normal!important}
}

/* R227 mobile direction safety */
@media (max-width:820px){
  body.gv-root-r227 .gv3-shell{display:block!important;width:100%!important}
  body.gv-root-r227 .gv3-main,
  body.gv-root-r227 .gv3-shell.is-sidebar-collapsed .gv3-main{
    width:100%!important;max-width:100%!important;margin-inline:0!important;
  }
  body.gv-root-r227 .gv3-sidebar{
    inset-block:0!important;inset-inline-start:0!important;inset-inline-end:auto!important;left:auto!important;right:auto!important;
  }
}
@media (max-width:820px){
  body.gv-root-r227 .gv3-sidebar{
    left:auto!important;right:auto!important;
    inset-block-start:0!important;inset-block-end:0!important;
    inset-inline-start:0!important;inset-inline-end:auto!important;
  }
}
