/* Install wizard shared module styles */
        body.install-pro * { box-sizing:border-box; outline:none; }
        body.install-pro {
            margin:0;
            font-family:var(--app-font-sans, Inter, system-ui, sans-serif);
            color:var(--tx);
            min-height:100vh;
            display:flex;
            flex-direction:column;
            align-items:center;
            justify-content:center;
            padding:16px 0 24px;
            position:relative;
            isolation:isolate;
            overflow-x:hidden;
            overflow-y:auto;
            background:linear-gradient(-45deg,var(--bg-gradient-1),var(--bg-gradient-2),var(--bg-gradient-3),var(--bg-gradient-4));
            background-size:400% 400%;
            animation:gradientBG 15s ease infinite;
        }
        @keyframes gradientBG { 0%{background-position:0 50%} 50%{background-position:100% 50%} 100%{background-position:0 50%} }
        body.install-pro .login-container {
            width: 100%;
            max-width: 760px;
            padding: 16px;
            z-index: 2;
            position: relative;
        }
        body.install-pro .login-container.is-narrow {
            max-width: 460px;
        }
        body.install-pro .card {
            width: 100%;
            background: rgba(255, 255, 255, 0.95);
            backdrop-filter: blur(20px);
            border-radius: 16px;
            box-shadow: 0 20px 50px rgba(0, 0, 0, 0.1);
            padding: 26px 28px;
            border: 1px solid rgba(255, 255, 255, 0.8);
            position: relative;
            overflow: hidden;
            animation: cardEntrance 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
        }
        @keyframes cardEntrance {
            from { opacity: 0; transform: translateY(30px) scale(0.95); }
            to { opacity: 1; transform: translateY(0) scale(1); }
        }
        body.install-pro .wrap {
            width: 100%;
            display: grid;
            grid-template-columns: 300px 1fr;
            border-radius: 12px;
            overflow: hidden;
            position: relative;
            z-index: 2;
        }
        body.install-pro .left {
            position:relative; overflow:hidden; color:#fff; padding:28px;
            background:
                radial-gradient(120px 120px at 80% -10%, rgba(255,255,255,.24), transparent 60%),
                radial-gradient(200px 200px at -20% 100%, rgba(255,255,255,.16), transparent 65%),
                linear-gradient(160deg,var(--p),var(--p2));
        }
        body.install-pro .eyebrow {
            display:inline-flex; align-items:center; gap:8px; font-size:.73rem; font-weight:700; letter-spacing:.45px; text-transform:uppercase;
            background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.28); padding:6px 10px; border-radius:999px; margin-bottom:14px;
        }
        body.install-pro .logo {
            width:58px; height:58px; border-radius:14px; background:rgba(255,255,255,.2); border:1px solid rgba(255,255,255,.35);
            display:flex; align-items:center; justify-content:center; margin-bottom:16px; font-size:1.4rem;
            box-shadow:0 10px 25px rgba(0,0,0,.2);
        }
        body.install-pro .left h1 { margin:0 0 8px; font-size:1.45rem; letter-spacing:-.2px; }
        body.install-pro .left p { margin:0 0 14px; color:rgba(255,255,255,.9); font-size:.92rem; line-height:1.55; }
        body.install-pro .mini-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:14px 0; }
        body.install-pro .mini-card {
            background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.26); border-radius:12px;
            padding:9px 10px;
        }
        body.install-pro .mini-card span { display:block; font-size:.7rem; opacity:.85; text-transform:uppercase; letter-spacing:.45px; }
        body.install-pro .mini-card strong { display:block; font-size:.95rem; margin-top:4px; }
        body.install-pro .steps { margin-top:8px; display:grid; gap:8px; }
        body.install-pro .step {
            display:flex; align-items:flex-start; gap:8px; font-size:.84rem; color:rgba(255,255,255,.95);
            background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:10px; padding:8px 9px;
            transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
        }
        body.install-pro .step.is-active {
            background: rgba(255,255,255,.2);
            border-color: rgba(255,255,255,.42);
            transform: translateX(2px);
        }
        body.install-pro .step.is-done {
            background: rgba(15, 23, 42, .2);
            border-color: rgba(255,255,255,.32);
        }
        body.install-pro .step-no {
            width:18px; height:18px; border-radius:50%; background:rgba(255,255,255,.26);
            display:flex; align-items:center; justify-content:center; font-size:.7rem; font-weight:700; flex-shrink:0;
        }
        body.install-pro .step.is-active .step-no,
        body.install-pro .step.is-done .step-no {
            background: rgba(255,255,255,.36);
        }
        body.install-pro .trust {
            margin-top:12px; font-size:.79rem; display:flex; gap:8px; align-items:flex-start;
            background:rgba(0,0,0,.15); border:1px solid rgba(255,255,255,.2); border-radius:10px; padding:9px;
        }
        body.install-pro .right { padding:24px 28px; }
        body.install-pro .sec { font-size:.78rem; color:#94a3b8; text-transform:uppercase; letter-spacing:.5px; font-weight:700; margin:14px 0 10px; }
        body.install-pro .g2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
        body.install-pro label { display:block; font-size:.84rem; margin-bottom:6px; font-weight:600; }
        body.install-pro input[type=text],body.install-pro input[type=password],body.install-pro input[type=email],body.install-pro input[type=file] {
            width:100%;
            height:50px;
            border-radius:12px;
            border:2px solid var(--border-color);
            background:var(--input-bg);
            color:var(--text-dark);
            padding:0 16px;
            font-size:.95rem;
            transition:all .3s ease;
            font-family:var(--app-font-sans, Inter, system-ui, sans-serif);
        }
        body.install-pro input[type=file] {
            height:auto;
            min-height:44px;
            padding:8px 10px;
        }
        body.install-pro input[type=text]:focus,
        body.install-pro input[type=password]:focus,
        body.install-pro input[type=email]:focus,
        body.install-pro input[type=file]:focus {
            border-color:#cbd5e1;
            background:#fff;
            box-shadow:0 0 0 4px rgba(148,163,184,.14);
        }
        body.install-pro .field { margin-bottom:10px; }
        body.install-pro .cb { margin-top:6px; background:#f8fafc; border:1px solid var(--b); border-radius:12px; padding:10px 12px; font-size:.85rem; display:flex; justify-content:space-between; align-items:center; }
        body.install-pro .base-button {
            width:100%; height:48px; margin-top:18px; border:none; border-radius:12px; color:#fff; font-weight:700; cursor:pointer;
            background:linear-gradient(to right,var(--p),var(--p2)); box-shadow:0 7px 20px rgba(0,86,179,.28);
        }
        body.install-pro .alert { border-radius:12px; padding:11px 13px; margin-bottom:12px; border:1px solid; font-size:.9rem; }
        body.install-pro .ok { color:var(--ok); background:#f0fdf4; border-color:#bbf7d0; }
        body.install-pro .er { color:var(--err); background:#fef2f2; border-color:#fecaca; }
        body.install-pro .alert ul { margin:6px 0 0 16px; padding:0; }
        body.install-pro .links { margin-top:8px; display:flex; gap:8px; flex-wrap:wrap; }
        body.install-pro .links a { text-decoration:none; font-size:.84rem; color:var(--p2); background:var(--p-soft); border:1px solid var(--p-soft-b); border-radius:999px; padding:5px 10px; font-weight:600; }
        body.install-pro .install-log-list {
            margin: 14px 0 0 18px;
            text-align: left;
            color: #334155;
            font-size: .88rem;
            line-height: 1.5;
        }
        body.install-pro .install-links-centered {
            justify-content: center;
            margin-top: 14px;
        }
        body.install-pro .install-sql-field {
            margin-top: 10px;
        }
        body.install-pro .install-field-note {
            display: block;
            margin-top: 6px;
            color: #64748b;
            font-size: .78rem;
        }
        body.install-pro .login-footer {
            margin-top: 50px;
            width: max-content;
            max-width: calc(100vw - 20px);
            text-align: center;
            color: rgba(0,0,0,.45);
            font-size: .75rem;
            padding: 0 8px;
            z-index: 2;
            position: relative;
        }
        body.install-pro .installed-only {
            width: 100%;
            max-width: 100%;
            text-align: center;
            position: relative;
            z-index: 2;
        }
        body.install-pro .installed-only .icon {
            width: 54px;
            height: 54px;
            margin: 0 auto 12px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            background: #ecfdf3;
            color: #16a34a;
            border: 1px solid #bbf7d0;
            font-size: 1.35rem;
        }
        body.install-pro .installed-only h1 {
            margin: 0 0 8px;
            font-size: 1.2rem;
            color: #0f172a;
        }
        body.install-pro .installed-only p {
            margin: 0;
            color: #475569;
            line-height: 1.5;
            font-size: .95rem;
        }
        body.install-pro .license-only {
            max-width: 480px;
            text-align: left;
        }
        body.install-pro .license-only .entry-header {
            text-align: center;
            margin-bottom: 18px;
        }
        body.install-pro .license-only .logo-area {
            width: 64px;
            height: 64px;
            background: linear-gradient(135deg, var(--p) 0%, var(--p2) 100%);
            color: #fff;
            border-radius: 16px;
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 auto 12px auto;
            font-size: 1.6rem;
            box-shadow: 0 10px 20px rgba(15, 23, 42, 0.24);
            transform: rotate(-5deg);
            transition: transform .25s ease;
            overflow: hidden;
        }
        body.install-pro .card:hover .logo-area {
            transform: rotate(0deg) scale(1.04);
        }
        body.install-pro .license-only .logo-area img.logo-image {
            width: 72%;
            height: 72%;
            object-fit: contain;
            display: block;
        }
        body.install-pro .license-only h1 {
            text-align: center;
            margin-bottom: 6px;
        }
        body.install-pro .license-only p {
            text-align: center;
            margin-bottom: 14px;
        }
        body.install-pro .license-only .field {
            margin-bottom: 12px;
        }
        body.install-pro .license-actions {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 10px;
            margin-top: 14px;
        }
        body.install-pro .license-actions .base-button {
            margin-top: 0;
            height: 46px;
            width: 100%;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            text-decoration: none;
        }
        body.install-pro .license-actions .base-button:not(.base-button-plain) {
            background: linear-gradient(135deg, var(--p) 0%, var(--p2) 100%);
            color: #ffffff;
            border: 1px solid color-mix(in srgb, var(--p2) 70%, #ffffff 30%);
            box-shadow: 0 16px 28px -20px rgba(15, 23, 42, 0.45);
        }
        body.install-pro .license-actions .base-button:not(.base-button-plain):hover {
            filter: brightness(.97) saturate(1.03);
        }
        body.install-pro .license-actions .base-button:not(.base-button-plain):is(:focus, :focus-visible) {
            outline: none;
            box-shadow: 0 0 0 4px color-mix(in srgb, var(--p) 20%, transparent 80%), 0 16px 28px -20px rgba(15, 23, 42, 0.45);
        }
        body.install-pro .license-actions .base-button.base-button-plain {
            background: var(--p-soft);
            color: var(--p2);
            border: 1px solid var(--p-soft-b);
            box-shadow: none;
        }
        body.install-pro .license-error-text {
            margin-top: 12px;
            text-align: center;
            color: var(--err);
            font-size: .9rem;
            font-weight: 600;
            line-height: 1.45;
        }
        @media (max-width:900px) { body.install-pro .wrap { grid-template-columns:1fr; } body.install-pro .g2 { grid-template-columns:1fr; gap:0; } body.install-pro .right { padding:20px; } }

        body.install-pro .cb {
            gap: 12px;
            cursor: pointer;
            user-select: none;
        }
        body.install-pro .cb .cb-text {
            display: block;
            color: #0f172a;
            font-weight: 600;
            line-height: 1.35;
        }
        body.install-pro .cb .cb-switch {
            position: relative;
            width: 48px;
            height: 28px;
            flex: 0 0 48px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }
        body.install-pro .cb .cb-switch input[type=checkbox] {
            position: absolute;
            opacity: 0;
            pointer-events: none;
            width: 1px;
            height: 1px;
        }
        body.install-pro .cb .cb-slider {
            position: relative;
            width: 48px;
            height: 28px;
            border-radius: 999px;
            background: #cfd8e3;
            border: 1px solid #b7c4d3;
            box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.14);
            transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
        }
        body.install-pro .cb .cb-slider::before {
            content: "";
            position: absolute;
            top: 2px;
            left: 2px;
            width: 22px;
            height: 22px;
            border-radius: 50%;
            background: #fff;
            box-shadow: 0 2px 4px rgba(15, 23, 42, 0.24);
            transition: transform .2s ease;
        }
        body.install-pro .cb .cb-switch input[type=checkbox]:checked + .cb-slider {
            background: linear-gradient(110deg, #1d4ed8 0%, #0b63cc 100%);
            border-color: #0b63cc;
            box-shadow: inset 0 1px 2px rgba(3, 26, 58, 0.24);
        }
        body.install-pro .cb .cb-switch input[type=checkbox]:checked + .cb-slider::before {
            transform: translateX(20px);
        }
        body.install-pro .cb .cb-switch input[type=checkbox]:focus-visible + .cb-slider {
            outline: 2px solid color-mix(in srgb, var(--p) 70%, #1e40af 30%);
            outline-offset: 2px;
        }
        .install-file-picker {
            position: relative;
            display: flex;
            align-items: center;
            gap: 10px;
            min-height: 48px;
            border: 1px dashed #c9d5e3;
            border-radius: 12px;
            padding: 8px 10px;
            background: #f8fbff;
            transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
        }
        .install-file-picker input[type=file] {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0, 0, 0, 0);
            clip-path: inset(50%);
            border: 0;
            white-space: nowrap;
            opacity: 0;
            pointer-events: none;
        }
        .install-file-picker:focus-within {
            border-color: color-mix(in srgb, var(--p) 70%, #1d4ed8 30%);
            background: #fff;
            box-shadow: 0 0 0 4px color-mix(in srgb, var(--p) 15%, transparent 85%);
        }
        .install-file-btn {
            display: inline-flex;
            align-items: center;
            gap: 7px;
            padding: 8px 12px;
            border-radius: 10px;
            border: 1px solid #b8c8db;
            background: linear-gradient(180deg, #ffffff 0%, #f1f6fc 100%);
            color: #0f4ea3;
            font-size: .82rem;
            font-weight: 700;
            line-height: 1;
            cursor: pointer;
            transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
            white-space: nowrap;
            margin-bottom: 0;
            align-self: center;
        }
        .install-file-btn:hover {
            border-color: #95b3d4;
            transform: translateY(-1px);
            box-shadow: 0 8px 16px -11px rgba(15, 78, 163, 0.45);
        }
        .install-file-btn i {
            font-size: .82rem;
        }
        .install-file-name {
            min-width: 0;
            flex: 1;
            color: #64748b;
            font-size: .86rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            align-self: center;
        }
        .install-file-picker.has-file {
            border-style: solid;
            border-color: #8ab2df;
            background: #eef5ff;
        }
        .install-file-picker.has-file .install-file-name {
            color: #0f172a;
            font-weight: 600;
        }
        .install-wizard-head {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 8px;
            margin: 2px 0 14px;
        }
        .install-wizard-chip {
            border: 1px solid #cfdae8;
            background: #f8fbff;
            color: #475569;
            border-radius: 11px;
            min-height: 46px;
            padding: 7px 10px;
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: .78rem;
            font-weight: 700;
            letter-spacing: .2px;
            transition: border-color .18s ease, background-color .18s ease, color .18s ease, box-shadow .18s ease;
        }
        .install-wizard-chip .num {
            width: 20px;
            height: 20px;
            border-radius: 50%;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border: 1px solid #b8c8db;
            background: #fff;
            color: #0f4ea3;
            font-size: .72rem;
            line-height: 1;
            flex: 0 0 20px;
        }
        .install-wizard-chip .label {
            display: block;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .install-wizard-chip.is-active {
            border-color: color-mix(in srgb, var(--p) 70%, #1e40af 30%);
            background: color-mix(in srgb, var(--p) 10%, #f8fbff 90%);
            color: #0f172a;
            box-shadow: 0 8px 18px -14px rgba(15, 78, 163, 0.6);
        }
        .install-wizard-chip.is-done {
            border-color: #9bc2eb;
            background: #edf4ff;
            color: #0f172a;
        }
        .install-wizard-chip.is-done .num {
            border-color: #0b63cc;
            background: #0b63cc;
            color: #fff;
        }
        .install-wizard-step[hidden] {
            display: none !important;
        }
        .install-step-slide-right {
            animation: installStepSlideRight .4s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
        }
        .install-step-slide-left {
            animation: installStepSlideLeft .4s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
        }
        @keyframes installStepSlideRight {
            from { opacity: 0; transform: translateX(18px); }
            to { opacity: 1; transform: translateX(0); }
        }
        @keyframes installStepSlideLeft {
            from { opacity: 0; transform: translateX(-18px); }
            to { opacity: 1; transform: translateX(0); }
        }
        .install-review {
            display: grid;
            gap: 8px;
            margin-top: 4px;
        }
        .install-review-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            border: 1px solid #dbe5f2;
            background: #f8fbff;
            border-radius: 10px;
            padding: 9px 11px;
        }
        .install-review-label {
            color: #475569;
            font-size: .8rem;
            font-weight: 600;
        }
        .install-review-value {
            color: #0f172a;
            font-size: .86rem;
            font-weight: 700;
            text-align: right;
            min-width: 0;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        body.install-pro .wizard-actions {
            display: flex;
            gap: 10px;
            margin-top: 18px;
        }
        body.install-pro .wizard-actions .base-button {
            width: auto;
            flex: 1 1 auto;
            margin-top: 0 !important;
        }
        body.install-pro .wizard-actions .base-button.base-button-plain {
            height: 48px;
            border: 1px solid #bfd0e3;
            border-radius: 12px;
            background: #f8fbff;
            color: #0f4ea3;
            font-weight: 700;
            cursor: pointer;
            transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
        }
        body.install-pro .base-button.base-button-plain[disabled],
        body.install-pro .wizard-actions .base-button[disabled] {
            opacity: .62;
            cursor: not-allowed;
            transform: none !important;
        }
        body.install-entry-redesign .wrap {
            max-width: 520px !important;
            display: block !important;
            border: 0 !important;
            background: transparent !important;
            box-shadow: none !important;
            overflow: visible !important;
        }
        body.install-entry-redesign .left {
            display: none !important;
        }
        body.install-entry-redesign .right {
            padding: 26px 24px !important;
            background: rgba(255, 255, 255, 0.95) !important;
            border: 1px solid rgba(255, 255, 255, 0.82) !important;
            border-radius: 18px !important;
            box-shadow: 0 20px 50px rgba(0, 0, 0, 0.12) !important;
            backdrop-filter: blur(20px);
            position: relative;
            overflow: hidden;
        }
        body.install-entry-redesign .right::before {
            content: "";
            position: absolute;
            left: 0;
            right: 0;
            top: 0;
            height: 4px;
            background: linear-gradient(90deg, var(--p) 0%, var(--p2) 100%);
        }
        body.install-entry-redesign .install-entry-header {
            text-align: center;
            margin-bottom: 18px;
        }
        body.install-entry-redesign .install-logo-area {
            width: 64px;
            height: 64px;
            border-radius: 16px;
            margin: 0 auto 14px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #fff;
            font-size: 1.6rem;
            background: linear-gradient(135deg, var(--p) 0%, var(--p2) 100%);
            box-shadow: 0 10px 20px rgba(0, 86, 179, 0.3);
            transform: rotate(-5deg);
            transition: transform .22s ease;
            overflow: hidden;
        }
        body.install-entry-redesign .right:hover .install-logo-area {
            transform: rotate(0deg) scale(1.04);
        }
        body.install-entry-redesign .wizard-actions {
            margin-top: 16px !important;
            display: grid !important;
            grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
            gap: 10px !important;
        }
        body.install-entry-redesign .wizard-actions > button {
            min-width: 0;
        }
        body.install-entry-redesign .wizard-actions.is-single {
            grid-template-columns: 1fr !important;
        }
        body.install-entry-redesign .wizard-actions.is-single > button:not([hidden]) {
            grid-column: 1 / -1;
        }
        body.install-entry-redesign .wizard-actions .base-button.base-button-plain,
        body.install-entry-redesign .base-button {
            height: 48px !important;
            width: 100% !important;
            border: 0 !important;
            border-radius: 12px !important;
            color: #fff !important;
            background: linear-gradient(100deg, #0f4ea3 0%, #0b63cc 55%, #08489a 100%) !important;
            box-shadow: 0 12px 26px -14px rgba(7, 54, 116, 0.6) !important;
        }
        body.install-entry-redesign .base-button.base-button-plain[disabled],
        body.install-entry-redesign .wizard-actions .base-button[disabled] {
            opacity: .48 !important;
        }
        body.install-entry-redesign .install-complete-card,
        body.install-entry-redesign .install-existing-card {
            width: 100% !important;
            max-width: 760px !important;
        }
