/* T-315: public landing page (/), in the style of the developer portal */
:root { --ps-navy: #0b1f3a; --ps-navy-2: #12305a; --ps-teal: #0f766e; --ps-teal-2: #14b8a6; --ps-ink: #0f172a; --ps-muted: #64748b; --ps-line: #e2e8f0; --ps-bg: #f5f7fb; }
* { box-sizing: border-box; }
/* vendor.css sets body{overflow:hidden} (and AdminLTE height:100%): let the page scroll */
html { height: auto; overflow-y: auto; }
body.ps { height: auto !important; min-height: 100%; overflow-x: hidden !important; overflow-y: auto !important; }
body.ps { margin: 0; font-family: 'Plus Jakarta Sans', 'Segoe UI', Arial, sans-serif; color: var(--ps-ink); background: #fff; -webkit-font-smoothing: antialiased; }
.ps a { color: var(--ps-teal); text-decoration: none; }
.ps-wrap { max-width: 1180px; margin: 0 auto; padding: 0 22px; }
.ps-btn { display: inline-flex; align-items: center; gap: 8px; border-radius: 10px; padding: 11px 18px; font-weight: 700; font-size: 14px; border: 1px solid transparent; cursor: pointer; }
.ps-btn-primary { background: var(--ps-teal); color: #fff !important; }
.ps-btn-primary:hover { background: #0b5a54; }
.ps-btn-light { background: #fff; color: var(--ps-ink) !important; border-color: var(--ps-line); }
.ps-btn-ghost { color: #e2e8f0 !important; border-color: rgba(255,255,255,.28); }
.ps-btn-ghost:hover { background: rgba(255,255,255,.08); }

.ps-hero { position: relative; overflow: hidden; color: #e2e8f0;
    background: radial-gradient(1100px 560px at -10% -20%, rgba(20,184,166,.30), transparent 60%), radial-gradient(900px 500px at 115% 110%, rgba(20,184,166,.22), transparent 60%), linear-gradient(160deg, var(--ps-navy) 0%, var(--ps-navy-2) 100%); }
.ps-hero:before { content: ''; position: absolute; inset: 0; opacity: .07; pointer-events: none;
    background-image: linear-gradient(rgba(255,255,255,.6) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.6) 1px, transparent 1px); background-size: 28px 28px; }
.ps-nav { position: relative; display: flex; align-items: center; gap: 26px; height: 74px; }
.ps-nav img { height: 32px; filter: brightness(0) invert(1); }
.ps-nav .links { display: flex; gap: 22px; }
.ps-nav .links a { color: #cbd5e1; font-weight: 600; font-size: 14px; }
.ps-nav .links a:hover { color: #fff; }
.ps-nav .right { margin-left: auto; display: flex; gap: 10px; }
.ps-hero-grid { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: center; padding: 56px 0 84px; }
.ps-eyebrow { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--ps-teal-2); background: rgba(20,184,166,.12); border: 1px solid rgba(20,184,166,.3); padding: 5px 12px; border-radius: 999px; margin-bottom: 18px; }
.ps-hero h1 { color: #fff; font-size: 46px; line-height: 1.12; font-weight: 800; letter-spacing: -1px; margin: 0 0 18px; }
.ps-hero p.lead { color: #cbd5e1; font-size: 17px; line-height: 1.65; margin: 0 0 28px; max-width: 560px; }
.ps-hero .cta { display: flex; gap: 12px; flex-wrap: wrap; }
.ps-trust { display: flex; gap: 22px; margin-top: 28px; color: #94a3b8; font-size: 13px; flex-wrap: wrap; }
.ps-trust span i { color: var(--ps-teal-2); margin-right: 6px; }

.ps-mock { background: #fff; border-radius: 18px; padding: 18px; box-shadow: 0 30px 60px rgba(2,6,23,.45); color: var(--ps-ink); }
.ps-mock .bar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.ps-mock .bar strong { font-size: 15px; }
.ps-mock .pill { font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 999px; }
.pill-ok { background: #dcfce7; color: #166534; } .pill-wait { background: #fef3c7; color: #92400e; } .pill-info { background: #e0f2fe; color: #075985; }
.ps-mock .row { display: flex; align-items: center; gap: 12px; padding: 11px 4px; border-top: 1px solid #f1f5f9; }
.ps-mock .av { width: 34px; height: 34px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 12px; }
.ps-mock .meta { flex: 1; } .ps-mock .meta b { display: block; font-size: 13.5px; } .ps-mock .meta small { color: var(--ps-muted); }
.ps-mock .amt { font-weight: 800; font-size: 14px; }
.ps-mock .foot { margin-top: 12px; padding: 12px; background: var(--ps-bg); border-radius: 12px; display: flex; justify-content: space-between; font-size: 13px; }
.ps-mock .note { font-size: 11px; color: var(--ps-muted); margin-top: 8px; text-align: center; }

.ps-section { padding: 80px 0; }
.ps-section.alt { background: var(--ps-bg); }
.ps-head { text-align: center; max-width: 680px; margin: 0 auto 44px; }
.ps-head h2 { font-size: 32px; font-weight: 800; letter-spacing: -.5px; margin: 0 0 10px; }
.ps-head p { color: var(--ps-muted); font-size: 16px; margin: 0; line-height: 1.6; }
.ps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ps-feature { background: #fff; border: 1px solid var(--ps-line); border-radius: 16px; padding: 24px; }
.ps-feature .ic { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 18px; margin-bottom: 14px; }
.ps-feature h3 { font-size: 17px; margin: 0 0 6px; }
.ps-feature p { color: var(--ps-muted); margin: 0; font-size: 14px; line-height: 1.6; }
.ic-teal { background: #ccfbf1; color: #0f766e; } .ic-blue { background: #dbeafe; color: #1d4ed8; } .ic-amber { background: #fef3c7; color: #b45309; } .ic-rose { background: #ffe4e6; color: #be123c; } .ic-violet { background: #ede9fe; color: #6d28d9; } .ic-green { background: #dcfce7; color: #15803d; }
.ps-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; counter-reset: s; }
.ps-step { position: relative; padding: 26px 24px 24px; border-radius: 16px; background: #fff; border: 1px solid var(--ps-line); }
.ps-step:before { counter-increment: s; content: counter(s); position: absolute; top: -16px; left: 24px; width: 32px; height: 32px; border-radius: 50%; background: var(--ps-teal); color: #fff; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.ps-step h3 { margin: 6px 0 6px; font-size: 17px; } .ps-step p { margin: 0; color: var(--ps-muted); font-size: 14px; line-height: 1.6; }

.ps-dev { border-radius: 20px; padding: 40px; display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center; color: #e2e8f0;
    background: radial-gradient(800px 400px at 110% -20%, rgba(20,184,166,.25), transparent 60%), linear-gradient(160deg, var(--ps-navy) 0%, var(--ps-navy-2) 100%); }
.ps-dev h2 { color: #fff; font-size: 28px; margin: 0 0 10px; } .ps-dev p { color: #cbd5e1; margin: 0 0 20px; line-height: 1.6; }
.ps-code { background: rgba(2,6,23,.55); border: 1px solid rgba(255,255,255,.1); border-radius: 12px; padding: 16px; font-family: Consolas, Menlo, monospace; font-size: 12.5px; color: #cbd5e1; white-space: pre; overflow: auto; line-height: 1.6; }
.ps-code .k { color: #5eead4; } .ps-code .s { color: #fcd34d; } .ps-code .c { color: #64748b; }

.ps-cta { text-align: center; }
.ps-cta h2 { font-size: 30px; margin: 0 0 10px; } .ps-cta p { color: var(--ps-muted); margin: 0 0 22px; }
.ps-footer { border-top: 1px solid var(--ps-line); padding: 34px 0; color: var(--ps-muted); font-size: 13px; }
.ps-footer .cols { display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; align-items: center; }
.ps-footer img { height: 26px; }
.ps-footer a { color: var(--ps-muted); margin-left: 18px; font-weight: 600; }
.ps-footer a:hover { color: var(--ps-ink); }

@media (max-width: 991px) {
    .ps-nav .links { display: none; }
    .ps-hero-grid { grid-template-columns: 1fr; padding: 28px 0 56px; }
    .ps-hero h1 { font-size: 32px; }
    .ps-grid, .ps-steps { grid-template-columns: 1fr 1fr; }
    .ps-dev { grid-template-columns: 1fr; padding: 28px; }
}
@media (max-width: 600px) {
    .ps-nav .right .ps-btn-light { display: none; }
    .ps-grid, .ps-steps { grid-template-columns: 1fr; }
    .ps-section { padding: 56px 0; }
    .ps-footer a { margin: 0 14px 0 0; }
}
.ps h1, .ps h2, .ps h3 { font-family: inherit; color: inherit; }
.ps-section h2, .ps-feature h3, .ps-step h3, .ps-cta h2 { color: var(--ps-ink); }
