/* =====================================================================
   PinTaxi — modern admin theme overlay
   ---------------------------------------------------------------------
   Loaded AFTER core.css. It only restyles: it keeps every layout metric
   the old theme relies on (220px sidebar, 60px header) so the 30+ admin
   pages that were built against core.css keep their positioning, while
   colour, depth, typography and the dashboard get a current look.
   ===================================================================== */

:root {
    --pt-bg:        #eef1f7;
    --pt-surface:   #ffffff;
    --pt-ink:       #1b2333;
    --pt-ink-soft:  #64708a;
    --pt-line:      #e6eaf2;

    --pt-side-1:    #171e33;
    --pt-side-2:    #232c48;
    --pt-side-ink:  rgba(255,255,255,.72);

    --pt-brand:     #111318;   /* PinTaxi black */
    --pt-brand-ink: #ffffff;
    --pt-side-accent: #ffffff; /* accent used ON the dark sidebar (black would vanish) */
    --pt-primary:   #4a63f2;
    --pt-success:   #22c55e;
    --pt-info:      #2d9bf0;
    --pt-warning:   #f59e0b;
    --pt-danger:    #ef4444;

    --pt-radius:    14px;
    --pt-shadow:    0 2px 14px rgba(23,30,51,.06);
    --pt-shadow-lg: 0 10px 34px rgba(23,30,51,.12);
}

body.skin-1,
body.fixed-sidebar {
    background: var(--pt-bg) !important;
    color: var(--pt-ink);
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
}

/* ---------------------------------------------------------- Sidebar */
.site-sidebar {
    background: var(--pt-side-1) !important;
    box-shadow: 4px 0 24px rgba(15,20,40,.14);
}

/* Readability guard: core.css sets `.site-sidebar ul { color: black }`, which
   turns any label not caught by a link rule into black-on-dark (invisible).
   Force a light base colour so every item stays legible on the dark panel. */
.site-sidebar,
.site-sidebar ul,
.site-sidebar li,
.site-sidebar .s-text,
.site-sidebar .menu-title { color: #dbe1ef !important; }

/* The active skin (skin-1) is built for a WHITE sidebar, so it colours every
   link near-black at a specificity (0,3,2) that outranks our generic rules.
   Our sidebar is dark, so re-light the links at the skin's own specificity —
   this is what catches the plain leaf submenu links (New Account, All Zone…)
   that have no .s-text span and were rendering black-on-dark. */
.skin-1 .site-sidebar .sidebar-menu li > a { color: #dbe1ef; }
.skin-1 .site-sidebar .sidebar-menu li > a:hover { color: #ffffff; }
/* Active leaf sits on a white pill, so its text must be dark to stay readable.
   with-sub parents (containers of an open submenu) keep light text. */
.skin-1 .site-sidebar .sidebar-menu li.active > a { color: #111318; }
.skin-1 .site-sidebar .sidebar-menu li.with-sub.active > a { color: #ffffff; }
.skin-1 .site-sidebar .sidebar-menu .menu-title { color: rgba(255,255,255,.45); }

/* Brand block injected at the top of the menu */
.pt-brand {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: 1.1rem 1.25rem;
    margin-bottom: .5rem;
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.pt-brand__logo {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: #fff;
    display: flex; align-items: center; justify-content: center;
    flex: none; overflow: hidden;
    box-shadow: 0 6px 16px rgba(0,0,0,.35);
}
.pt-brand__logo img { width: 100%; height: 100%; object-fit: contain; display: block; }
.pt-brand__name {
    color: #fff; font-weight: 700; font-size: 1.02rem;
    letter-spacing: .2px; line-height: 1.1;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pt-brand__name small { display: block; font-weight: 400; font-size: .7rem; color: rgba(255,255,255,.5); }

/* Top-level items */
.site-sidebar .sidebar-menu > li > a {
    color: rgba(255,255,255,.78);
    padding: .6rem 1rem;
    margin: 2px .55rem;
    border-radius: 9px;
    font-size: .875rem;
    font-weight: 500;
}
.site-sidebar .sidebar-menu > li > a:hover {
    background: rgba(255,255,255,.07);
    color: #fff;
}
.site-sidebar .sidebar-menu > li > a .s-icon { margin-right: .8rem; }
.site-sidebar .sidebar-menu > li > a .s-icon i { font-size: 1.05rem; color: rgba(255,255,255,.75); transition: color .15s ease; }
.site-sidebar .sidebar-menu > li > a:hover .s-icon i { color: var(--pt-side-accent); }
.site-sidebar .sidebar-menu > li > a .s-caret i { color: rgba(255,255,255,.4); }

/* Active top-level leaf (e.g. Dashboard) — white pill, dark text/icon */
.site-sidebar .sidebar-menu > li.active > a {
    background: #fff;
    color: #111318;
    font-weight: 600;
    box-shadow: 0 4px 12px rgba(0,0,0,.22);
}
.site-sidebar .sidebar-menu > li.active > a .s-icon i,
.site-sidebar .sidebar-menu > li.active > a .s-caret i { color: #111318; }
/* .s-text carries its own `color:#dbe1ef !important` from the readability guard,
   so the white pill needs an !important dark override or the label stays grey. */
.site-sidebar .sidebar-menu > li.active > a .s-text { color: #111318 !important; }

/* Open parent (holds an active child) — subtle highlight, keep light text */
.site-sidebar .sidebar-menu > li.with-sub.active > a {
    background: rgba(255,255,255,.10);
    color: #fff;
    box-shadow: inset 3px 0 0 var(--pt-side-accent);
}
.site-sidebar .sidebar-menu > li.with-sub.active > a .s-icon i { color: var(--pt-side-accent); }
.site-sidebar .sidebar-menu > li.active > a:after { display: none; }

/* Keep the submenu of the active branch open on load (no !important, so the
   JS accordion can still slide it closed on click). */
body:not(.compact-sidebar) .site-sidebar .sidebar-menu li.with-sub.active > ul { display: block; }

/* Submenus — lighter panel with legible text, clearly nested */
.site-sidebar .sidebar-menu ul {
    margin: 2px .55rem 6px;
    padding: 3px 0;
    background: rgba(255,255,255,.04);
    border-radius: 9px;
    overflow: hidden;
}
.site-sidebar .sidebar-menu ul li > a {
    padding: .5rem 1rem .5rem 2.7rem;
    margin: 0; border-radius: 0;
    font-size: .82rem;
    font-weight: 500;
    color: rgba(255,255,255,.66);
    position: relative;
}
.site-sidebar .sidebar-menu ul li > a:before {
    content: ''; position: absolute; left: 1.55rem; top: 50%;
    width: 5px; height: 5px; margin-top: -2.5px; border-radius: 50%;
    background: rgba(255,255,255,.28); transition: background .15s ease;
}
.site-sidebar .sidebar-menu ul li > a:hover { background: rgba(255,255,255,.06); color: #fff; }
.site-sidebar .sidebar-menu ul li > a:hover:before { background: var(--pt-side-accent); }
.site-sidebar .sidebar-menu ul li.active > a { background: #fff; color: #111318; font-weight: 600; }
.site-sidebar .sidebar-menu ul li.active > a:before { background: #111318; }
.site-sidebar .sidebar-menu ul li .s-caret i { color: rgba(255,255,255,.35); }
.site-sidebar .sidebar-menu ul ul { margin: 2px .4rem; }

/* Sidebar is always visible; the menu scrolls natively (no jScrollPane). */
.site-sidebar { display: block !important; visibility: visible !important; }

/* Guard against legacy off-canvas/intro scripts that leave an inline `left`
   offset on the fixed sidebar (observed: left:-1012px) which shoves it
   completely off-screen. On desktop the sidebar is permanently docked at the
   left edge; the sliding off-canvas behaviour is a mobile-only concern handled
   below the 768px breakpoint. A stylesheet !important beats a normal inline
   style, so this reliably overrides whatever JS wrote. */
@media (min-width: 768px) {
    .site-sidebar { left: 0 !important; }

    /* The .no-margin class on .site-content zeroes its left margin, so the
       content slides underneath the fixed sidebar and the sidebar visually
       covers it. Reserve the sidebar's width so content sits beside it, and
       track the width when the rail collapses to compact. */
    .site-content,
    .site-content.no-margin { margin-left: 220px !important; }
    .compact-sidebar .site-content,
    .compact-sidebar .site-content.no-margin { margin-left: 70px !important; }
}
.site-sidebar .custom-scroll {
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.18) transparent;
}
.site-sidebar .custom-scroll::-webkit-scrollbar { width: 6px; }
.site-sidebar .custom-scroll::-webkit-scrollbar-thumb { background: rgba(255,255,255,.16); border-radius: 6px; }

/* ---- Collapsed (compact) sidebar: keep the theme legible in fly-outs ---- */
@media (min-width: 768px) {
    .compact-sidebar .pt-brand { justify-content: center; padding-left: 0; padding-right: 0; gap: 0; }
    .compact-sidebar .pt-brand__name { display: none; }
    .compact-sidebar .site-sidebar .sidebar-menu > li > a { margin: 2px 0; border-radius: 0; }
    .compact-sidebar .site-sidebar .sidebar-menu > li:hover { background: #232c48; }
    /* fly-out submenu sits on a solid dark panel, not the white core default */
    .compact-sidebar .site-sidebar .sidebar-menu li > ul {
        background: #232c48 !important;
        box-shadow: 6px 8px 24px rgba(10,14,30,.35);
        border-radius: 0 10px 10px 0;
        margin: 0; padding: 4px 0;
    }
    .compact-sidebar .site-sidebar .sidebar-menu ul li > a { color: rgba(255,255,255,.72) !important; padding-left: 1.1rem; }
    .compact-sidebar .site-sidebar .sidebar-menu ul li > a:hover,
    .compact-sidebar .site-sidebar .sidebar-menu ul li.active > a { color: #fff !important; }
    .compact-sidebar .site-sidebar .sidebar-menu ul li > a:before { display: none; }
}

/* ---------------------------------------------------------- Header */
.site-header {
    background: var(--pt-surface) !important;
    box-shadow: 0 1px 0 var(--pt-line), 0 4px 18px rgba(23,30,51,.05);
}
.site-header .navbar { min-height: 62px; padding: 0; }
.pt-header {
    height: 62px;
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 1.25rem 0 .9rem;
    gap: 1rem;
}
.pt-header__left  { display: flex; align-items: center; gap: .9rem; min-width: 0; }
.pt-header__right { display: flex; align-items: center; gap: .35rem; }

.pt-header__brand { display: flex; align-items: center; }
.pt-header__brand img { height: 34px; width: auto; max-width: 168px; object-fit: contain; display: block; }

/* Hamburger lines visible on the white header */
.site-header .hamburger { padding: 10px; margin: 0; }
.site-header .hamburger-inner,
.site-header .hamburger-inner::before,
.site-header .hamburger-inner::after { background-color: var(--pt-ink) !important; }

/* Header action buttons */
.pt-hbtn {
    position: relative;
    display: inline-flex; align-items: center; gap: .45rem;
    height: 40px; padding: 0 .7rem;
    border-radius: 10px;
    color: var(--pt-ink-soft) !important;
    font-weight: 600; font-size: .86rem;
    text-decoration: none; transition: background .15s ease, color .15s ease;
}
.pt-hbtn:hover { background: var(--pt-bg); color: var(--pt-ink) !important; }
.pt-hbtn i { font-size: 1.05rem; }
.pt-hbtn--ghost .pt-hbtn__label { font-weight: 600; }
@media (max-width: 575px) { .pt-hbtn__label { display: none; } }

.pt-badge {
    position: absolute; top: 4px; right: 4px;
    min-width: 17px; height: 17px; padding: 0 4px;
    border-radius: 999px;
    font-size: .66rem; font-weight: 700; line-height: 17px; text-align: center;
    color: #fff; box-shadow: 0 0 0 2px var(--pt-surface);
}
.pt-badge--ok    { background: var(--pt-success); }
.pt-badge--alert { background: var(--pt-danger); }

/* User chip */
.pt-header__user {
    display: flex; align-items: center; gap: .6rem;
    height: 44px; padding: 0 .55rem 0 .5rem;
    border-radius: 12px; text-decoration: none;
    transition: background .15s ease;
}
.pt-header__user:hover { background: var(--pt-bg); }
.pt-header__user .avatar.box-32 img { border-radius: 50%; border: 2px solid var(--pt-line); }
.pt-header__uname {
    display: flex; flex-direction: column; line-height: 1.15;
    font-weight: 700; font-size: .85rem; color: var(--pt-ink);
}
.pt-header__uname small { font-weight: 500; font-size: .7rem; color: var(--pt-ink-soft); }
.pt-header__ucaret { font-size: .7rem; color: var(--pt-ink-soft); }
@media (max-width: 767px) { .pt-header__uname, .pt-header__ucaret { display: none; } }

/* Header dropdowns */
.pt-drop {
    border: 1px solid var(--pt-line);
    border-radius: 14px;
    box-shadow: var(--pt-shadow-lg);
    padding: .4rem;
    min-width: 240px;
    margin-top: .5rem;
}
.pt-drop--wide { min-width: 320px; }
.pt-drop__head {
    padding: .5rem .65rem .55rem;
    font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
    color: var(--pt-ink-soft);
}
.pt-drop__item {
    display: flex; align-items: center; gap: .7rem;
    padding: .55rem .65rem; border-radius: 10px;
    text-decoration: none; transition: background .12s ease;
}
.pt-drop__item:hover { background: var(--pt-bg); }
.pt-drop__ico, .pt-drop__avatar {
    width: 34px; height: 34px; border-radius: 50%; flex: none;
    display: flex; align-items: center; justify-content: center; overflow: hidden;
    color: #fff;
}
.pt-drop__avatar img { width: 100%; height: 100%; object-fit: cover; }
.pt-drop__body { display: flex; flex-direction: column; min-width: 0; flex: 1; line-height: 1.2; }
.pt-drop__body strong { font-size: .85rem; color: var(--pt-ink); font-weight: 600; }
.pt-drop__body small  { font-size: .74rem; color: var(--pt-ink-soft); }
.pt-drop__time { font-size: .68rem; color: var(--pt-ink-soft); white-space: nowrap; flex: none; }
.pt-drop__empty { padding: 1rem .65rem; text-align: center; color: var(--pt-ink-soft); font-size: .82rem; }
.pt-drop__link {
    display: flex; align-items: center; gap: .6rem;
    padding: .55rem .65rem; border-radius: 10px;
    color: var(--pt-ink); font-weight: 500; font-size: .86rem; text-decoration: none;
    transition: background .12s ease;
}
.pt-drop__link i { font-size: 1rem; color: var(--pt-ink-soft); }
.pt-drop__link:hover { background: var(--pt-bg); }
.pt-drop__link--danger, .pt-drop__link--danger i { color: var(--pt-danger); }
.pt-drop__link--danger:hover { background: rgba(239,68,68,.08); }

/* ---------------------------------------------------------- Footer */
.pt-footer {
    background: var(--pt-surface);
    border-top: 1px solid var(--pt-line);
    padding: 0;
    margin-top: 2rem;
}
.pt-footer__inner {
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: .5rem 1rem;
    padding: .95rem 1.5rem;
    font-size: .82rem; color: var(--pt-ink-soft);
}
.pt-footer__copy { font-weight: 500; }
.pt-footer__right { display: flex; align-items: center; gap: .55rem; }
.pt-footer__right a { color: var(--pt-ink-soft); font-weight: 600; text-decoration: none; }
.pt-footer__right a:hover { color: var(--pt-ink); }
.pt-footer__dot { color: var(--pt-line); }
.pt-footer__muted { color: var(--pt-ink-soft); }
@media (max-width: 575px) { .pt-footer__inner { justify-content: center; text-align: center; } }

/* ---------------------------------------------------------- Cards */
.box,
.box-block {
    border: none !important;
    border-radius: var(--pt-radius);
    background: var(--pt-surface);
}
.box { box-shadow: var(--pt-shadow); }
.shadow-box { box-shadow: var(--pt-shadow) !important; }
.box.bg-white { box-shadow: var(--pt-shadow) !important; }

/* ---------------------------------------------------- Tables / tags */
.table { color: var(--pt-ink); }
.table thead th {
    border-top: none;
    border-bottom: 1px solid var(--pt-line);
    text-transform: uppercase;
    font-size: .72rem;
    letter-spacing: .04em;
    color: var(--pt-ink-soft);
    font-weight: 600;
}
.table td, .table th { border-color: var(--pt-line); vertical-align: middle; }
.table.table-striped tbody tr:nth-of-type(odd) { background: #fafbfe; }

.tag {
    border-radius: 999px;
    padding: .28em .7em;
    font-weight: 600;
    font-size: .72rem;
}
.tag-success { background: rgba(34,197,94,.14);  color: #15803d; }
.tag-danger  { background: rgba(239,68,68,.14);  color: #b91c1c; }
.tag-info    { background: rgba(45,155,240,.14); color: #1d6fb8; }

/* Buttons */
.btn-success { background: var(--pt-success); border-color: var(--pt-success); }
.btn-success:hover { background: #1ba54e; border-color: #1ba54e; }
.btn { border-radius: 10px; font-weight: 600; }

/* =====================================================================
   Dashboard-specific building blocks (used by the rewritten view)
   ===================================================================== */
.pt-page { padding: 1.5rem; }
.pt-page__title { font-size: 1.4rem; font-weight: 700; margin: 0 0 .2rem; color: var(--pt-ink); }
.pt-page__sub   { color: var(--pt-ink-soft); margin: 0 0 1.25rem; font-size: .9rem; }

.pt-grid { display: grid; gap: 1rem; }
.pt-grid--stats { grid-template-columns: repeat(4, minmax(0,1fr)); }
.pt-grid--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.pt-grid--2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
@media (max-width: 1200px){ .pt-grid--stats{ grid-template-columns: repeat(2,1fr);} .pt-grid--3{grid-template-columns:repeat(2,1fr);} }
@media (max-width: 820px){ .pt-grid--stats,.pt-grid--3,.pt-grid--2{ grid-template-columns: 1fr; } }

.pt-stat {
    position: relative;
    background: var(--pt-surface);
    border-radius: var(--pt-radius);
    padding: 1.15rem 1.25rem;
    box-shadow: var(--pt-shadow);
    display: flex; align-items: center; gap: 1rem;
    overflow: hidden;
    transition: transform .16s ease, box-shadow .16s ease;
}
.pt-stat:hover { transform: translateY(-3px); box-shadow: var(--pt-shadow-lg); }
.pt-stat__icon {
    width: 52px; height: 52px; border-radius: 13px; flex: none;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.4rem; color: #fff;
}
.pt-stat__meta { min-width: 0; }
.pt-stat__value { font-size: 1.55rem; font-weight: 800; line-height: 1.1; color: var(--pt-ink); word-break: break-word; }
.pt-stat__label { font-size: .78rem; color: var(--pt-ink-soft); text-transform: uppercase; letter-spacing: .04em; font-weight: 600; margin-top: 2px; }

.pt-i--brand   { background: linear-gradient(135deg,#2b3450,#111318); color: #fff; }
.pt-i--primary { background: linear-gradient(135deg,#5b73ff,#3b4fd6); }
.pt-i--success { background: linear-gradient(135deg,#34d67f,#16a34a); }
.pt-i--info    { background: linear-gradient(135deg,#43b6ff,#1d84d6); }
.pt-i--warning { background: linear-gradient(135deg,#fbbf42,#e08c0b); color:#1b2333; }
.pt-i--danger  { background: linear-gradient(135deg,#ff6b6b,#dc2626); }
.pt-i--dark    { background: linear-gradient(135deg,#2b3450,#171e33); }

.pt-card {
    background: var(--pt-surface);
    border-radius: var(--pt-radius);
    box-shadow: var(--pt-shadow);
    padding: 1.1rem 1.25rem 1.25rem;
}
.pt-card__head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 1rem;
}
.pt-card__title { font-size: 1rem; font-weight: 700; color: var(--pt-ink); margin: 0; }
.pt-card__hint  { font-size: .78rem; color: var(--pt-ink-soft); }
.pt-card--table { padding: 1.1rem 0 0; }
.pt-card--table .pt-card__head { padding: 0 1.25rem; }
.pt-card--table .table { margin-bottom: 0; }
.pt-card--table .table td, .pt-card--table .table th { padding-left: 1.25rem; }

.pt-legend { display: flex; flex-wrap: wrap; gap: .35rem .9rem; margin-top: .5rem; }
.pt-legend span { font-size: .78rem; color: var(--pt-ink-soft); display: inline-flex; align-items: center; gap: .4rem; }
.pt-legend i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }

.pt-mb { margin-bottom: 1rem; }

/* =====================================================================
   Login screen
   ===================================================================== */
body.pt-auth {
    background: linear-gradient(135deg,#0c0e14 0%, #171e33 55%, #2b3450 120%) !important;
    min-height: 100vh;
}
.pt-login {
    min-height: 100vh;
    display: flex; align-items: center; justify-content: center;
    padding: 2rem 1rem;
}
.pt-login__card {
    width: 100%; max-width: 420px;
    background: rgba(255,255,255,.98);
    border-radius: 20px;
    box-shadow: 0 24px 70px rgba(0,0,0,.35);
    padding: 2.4rem 2.2rem;
}
.pt-login__brand {
    display: flex; align-items: center; gap: .7rem;
    justify-content: center; margin-bottom: 1.6rem;
}
.pt-login__logo {
    width: 46px; height: 46px; border-radius: 13px;
    background: var(--pt-brand); color: var(--pt-brand-ink);
    display: flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: 1.35rem;
    box-shadow: 0 8px 20px rgba(0,0,0,.4);
}
.pt-login__title { font-size: 1.25rem; font-weight: 700; color: var(--pt-ink); }
.pt-login__sub { text-align: center; color: var(--pt-ink-soft); font-size: .88rem; margin-bottom: 1.6rem; }
.pt-field { margin-bottom: 1.05rem; }
.pt-field label { display:block; font-size:.8rem; font-weight:600; color:var(--pt-ink); margin-bottom:.4rem; }
.pt-input {
    width: 100%;
    height: 48px;
    border: 1.5px solid var(--pt-line);
    border-radius: 12px;
    padding: 0 .95rem;
    font-size: .95rem;
    background: #fbfcfe;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.pt-input:focus {
    outline: none;
    border-color: var(--pt-primary);
    box-shadow: 0 0 0 4px rgba(74,99,242,.14);
    background: #fff;
}
.pt-login__row { display:flex; align-items:center; justify-content:space-between; margin: .2rem 0 1.3rem; font-size:.84rem; }
.pt-login__row a { color: var(--pt-primary); font-weight:600; text-decoration:none; }
.pt-login__row label { color: var(--pt-ink-soft); display:flex; align-items:center; gap:.4rem; margin:0; }
.pt-btn-primary {
    width: 100%; height: 50px; border: none; border-radius: 12px;
    background: linear-gradient(135deg,#2b3450,#111318);
    color: #fff; font-weight: 700; font-size: .98rem;
    display:flex; align-items:center; justify-content:center; gap:.5rem;
    cursor: pointer; transition: filter .15s ease, transform .15s ease;
}
.pt-btn-primary:hover { filter: brightness(1.07); transform: translateY(-1px); }
.pt-login__err { color: var(--pt-danger); font-size: .8rem; margin-top: .35rem; }

/* =====================================================================
   Premium split login (panels)
   ===================================================================== */
.pt-auth-split {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1.05fr .95fr;
}

/* --- Left: branded marketing aside --- */
.pt-auth__aside {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    padding: 3.6rem;
    color: #fff;
    background:
        radial-gradient(1100px 560px at -10% -15%, #2b3450 0%, transparent 60%),
        linear-gradient(150deg, #0c0e14 0%, #171e33 55%, #232c48 125%);
}
.pt-auth__aside::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(255,255,255,.06) 1px, transparent 1px);
    background-size: 22px 22px;
    opacity: .55;
}
.pt-auth__glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(72px);
    pointer-events: none;
}
.pt-auth__glow--1 { width: 340px; height: 340px; background: #4a63f2; opacity: .55; top: -90px; right: -70px; }
.pt-auth__glow--2 { width: 280px; height: 280px; background: #22c55e; opacity: .30; bottom: -110px; left: -60px; }
.pt-auth__aside-inner { position: relative; z-index: 1; max-width: 470px; }
.pt-auth__mark {
    width: 58px; height: 58px;
    border-radius: 16px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.14);
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 2.1rem;
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.pt-auth__mark img { width: 34px; height: 34px; }
.pt-auth__brandname {
    font-size: .78rem; letter-spacing: .2em; text-transform: uppercase;
    color: rgba(255,255,255,.6); font-weight: 600; margin-bottom: 1rem;
}
.pt-auth__headline {
    font-size: 2.15rem; line-height: 1.18; font-weight: 800;
    letter-spacing: -.02em; margin: 0 0 1rem;
}
.pt-auth__tagline {
    font-size: 1rem; line-height: 1.65;
    color: rgba(255,255,255,.66); margin: 0 0 2.4rem;
}
.pt-auth__points { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 1.05rem; }
.pt-auth__point { display: flex; align-items: center; gap: .85rem; font-size: .94rem; color: rgba(255,255,255,.82); }
.pt-auth__point-ico {
    flex: 0 0 auto;
    width: 34px; height: 34px; border-radius: 10px;
    background: rgba(74,99,242,.22); border: 1px solid rgba(74,99,242,.38);
    color: #c9d2ff; display: flex; align-items: center; justify-content: center; font-size: .9rem;
}
.pt-auth__aside-foot {
    position: absolute; left: 3.6rem; bottom: 2.4rem; z-index: 1;
    font-size: .78rem; color: rgba(255,255,255,.4);
}

/* --- Right: form --- */
.pt-auth__main {
    display: flex; align-items: center; justify-content: center;
    padding: 2.5rem 1.5rem;
    background: var(--pt-bg);
}
.pt-auth__form { width: 100%; max-width: 400px; }
.pt-auth__eyebrow {
    font-size: .76rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
    color: var(--pt-primary); margin-bottom: .55rem;
}
.pt-auth__title { font-size: 1.6rem; font-weight: 800; color: var(--pt-ink); letter-spacing: -.01em; margin: 0 0 .4rem; }
.pt-auth__subtitle { color: var(--pt-ink-soft); font-size: .92rem; margin: 0 0 2rem; }
.pt-auth__foot-note { margin-top: 1.6rem; text-align: center; font-size: .82rem; color: var(--pt-ink-soft); }

@media (max-width: 900px) {
    .pt-auth-split { grid-template-columns: 1fr; }
    .pt-auth__aside { display: none; }
    .pt-auth__main { min-height: 100vh; }
}
