:root{
      --ink:#0f172a;
      --ink-2:#1e293b;
      --ink-3:#334155;
      --muted:#64748b;
      --muted-2:#94a3b8;
      --line:#e2e8f0;
      --soft:#f8fafc;
      --soft-2:#eef2ff;
      --white:#ffffff;
      --accent:#6d28d9;
      --accent-2:#8b5cf6;
      --accent-3:#c084fc;
      --accent-glow:rgba(109,40,217,.18);
      --hero-a:#1f1140;
      --hero-b:#2a1458;
      --hero-c:#140b2f;
    }

    *{ box-sizing:border-box; }

    html,body{
      margin:0;
      padding:0;
      min-height:100%;
    }

    body{
      font-family:'DM Sans',sans-serif;
      color:var(--ink);
      overflow-x:hidden;
      background:
        radial-gradient(circle at 12% 12%, rgba(109,40,217,.10) 0%, transparent 28%),
        radial-gradient(circle at 88% 18%, rgba(139,92,246,.10) 0%, transparent 25%),
        radial-gradient(circle at 50% 100%, rgba(109,40,217,.06) 0%, transparent 32%),
        linear-gradient(180deg,#f8fafc 0%, #f3f6fb 100%);
    }

    h1,h2,h3,.font-display{
      font-family:'Plus Jakarta Sans',sans-serif;
    }

    body::before{
      content:'';
      position:fixed;
      inset:0;
      background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.022'/%3E%3C/svg%3E");
      pointer-events:none;
      z-index:0;
      opacity:.35;
    }

    .page{
      position:relative;
      z-index:1;
      min-height:100vh;
      padding:24px;
      display:flex;
      align-items:center;
      justify-content:center;
    }

    .shell{
      width:100%;
      max-width:1240px;
      display:grid;
      grid-template-columns:minmax(0, 1.12fr) minmax(380px, 460px);
      gap:28px;
      align-items:stretch;
    }

    .left-panel{
      position:relative;
      overflow:hidden;
      border-radius:40px;
      padding:38px;
      min-height:720px;
      background:
        radial-gradient(circle at 84% 16%, rgba(255,255,255,.12) 0%, transparent 22%),
        radial-gradient(circle at 20% 100%, rgba(192,132,252,.14) 0%, transparent 26%),
        linear-gradient(145deg,var(--hero-a) 0%,var(--hero-b) 52%,var(--hero-c) 100%);
      border:1px solid rgba(255,255,255,.08);
      box-shadow:0 34px 90px rgba(15,23,42,.20);
      display:flex;
      flex-direction:column;
      justify-content:space-between;
    }

    .left-panel::before{
      content:'';
      position:absolute;
      inset:0;
      background:
        linear-gradient(135deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,0) 34%);
      pointer-events:none;
    }

    .left-inner{
      position:relative;
      z-index:1;
    }

    .top-brand{
      display:flex;
      align-items:center;
      gap:18px;
    }

    .top-brand-logo{
      width:92px;
      height:92px;
      display:flex;
      align-items:center;
      justify-content:center;
      flex-shrink:0;
    }

    .top-brand-logo img{
      width:100%;
      height:100%;
      object-fit:contain;
      display:block;
      filter:drop-shadow(0 14px 28px rgba(0,0,0,.18));
    }

    .top-brand-fallback{
      width:92px;
      height:92px;
      display:none;
      align-items:center;
      justify-content:center;
      border-radius:28px;
      background:rgba(255,255,255,.12);
      border:1px solid rgba(255,255,255,.10);
      color:white;
      font-size:30px;
      font-weight:800;
      font-family:'Plus Jakarta Sans',sans-serif;
    }

    .top-brand-copy{
      min-width:0;
    }

    .top-brand-title{
      color:#fff;
      font-size:30px;
      font-weight:800;
      line-height:1;
      letter-spacing:-.04em;
      font-family:'Plus Jakarta Sans',sans-serif;
    }

    .top-brand-sub{
      margin-top:10px;
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:8px 12px;
      border-radius:999px;
      background:rgba(255,255,255,.10);
      border:1px solid rgba(255,255,255,.12);
      color:rgba(255,255,255,.78);
      font-size:10px;
      font-weight:800;
      letter-spacing:.18em;
      text-transform:uppercase;
      font-family:'Plus Jakarta Sans',sans-serif;
    }

    .hero-copy{
      margin-top:54px;
      max-width:560px;
    }

    .hero-title{
      color:#fff;
      font-size:clamp(42px, 5vw, 66px);
      line-height:.96;
      letter-spacing:-.065em;
      font-weight:800;
      margin:0;
      font-family:'Plus Jakarta Sans',sans-serif;
    }

    .hero-text{
      margin-top:22px;
      font-size:16px;
      line-height:1.72;
      color:rgba(255,255,255,.72);
      max-width:500px;
    }

    .hero-stats{
      margin-top:34px;
      display:grid;
      grid-template-columns:repeat(3, minmax(0,1fr));
      gap:14px;
      max-width:620px;
    }

    .stat-card{
      border-radius:24px;
      padding:18px;
      background:rgba(255,255,255,.08);
      border:1px solid rgba(255,255,255,.10);
      backdrop-filter:blur(12px);
    }

    .stat-number{
      color:#fff;
      font-size:26px;
      font-weight:800;
      letter-spacing:-.04em;
      font-family:'Plus Jakarta Sans',sans-serif;
    }

    .stat-label{
      margin-top:6px;
      color:rgba(255,255,255,.62);
      font-size:12px;
      line-height:1.4;
    }

    .hero-feature-list{
      margin-top:26px;
      display:grid;
      gap:12px;
      max-width:620px;
    }

    .hero-feature{
      display:flex;
      align-items:flex-start;
      gap:14px;
      border-radius:22px;
      padding:16px 18px;
      background:rgba(255,255,255,.07);
      border:1px solid rgba(255,255,255,.10);
      backdrop-filter:blur(10px);
    }

    .hero-feature-dot{
      width:11px;
      height:11px;
      margin-top:5px;
      border-radius:999px;
      background:#c4b5fd;
      box-shadow:0 0 0 6px rgba(196,181,253,.12);
      flex-shrink:0;
    }

    .hero-feature-title{
      color:#fff;
      font-size:15px;
      font-weight:800;
      font-family:'Plus Jakarta Sans',sans-serif;
    }

    .hero-feature-text{
      margin-top:4px;
      color:rgba(255,255,255,.66);
      font-size:13px;
      line-height:1.55;
    }

    .left-footer{
      position:relative;
      z-index:1;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      flex-wrap:wrap;
      color:rgba(255,255,255,.54);
      font-size:11px;
      font-weight:800;
      letter-spacing:.18em;
      text-transform:uppercase;
      font-family:'Plus Jakarta Sans',sans-serif;
    }

    .right-panel{
      position:relative;
      display:flex;
      align-items:stretch;
    }

    .login-card{
      width:100%;
      min-height:720px;
      height:100%;
      position:relative;
      overflow:hidden;
      border-radius:40px;
      background:rgba(255,255,255,.97);
      border:1px solid rgba(255,255,255,.9);
      box-shadow:0 34px 90px rgba(15,23,42,.12);
      backdrop-filter:blur(20px);
      padding:34px 30px 26px;
      display:flex;
      flex-direction:column;
      justify-content:center;
    }

    .login-card::before{
      content:'';
      position:absolute;
      inset:0;
      background:
        linear-gradient(180deg, rgba(109,40,217,.040) 0%, rgba(255,255,255,0) 34%);
      pointer-events:none;
    }

    .login-inner{
      position:relative;
      z-index:1;
    }

    .login-top{
      text-align:center;
      margin-bottom:26px;
    }

    .login-logo-wrap{
      display:flex;
      justify-content:center;
      margin-bottom:20px;
    }

    .login-logo{
      width:250px;
      height:250px;
      display:flex;
      align-items:center;
      justify-content:center;
    }

    .login-logo img{
      width:100%;
      height:100%;
      object-fit:contain;
      display:block;
      filter:drop-shadow(0 16px 30px rgba(109,40,217,.16));
    }

    .login-logo-fallback{
      width:200px;
      height:200px;
      display:none;
      align-items:center;
      justify-content:center;
      border-radius:46px;
      background:linear-gradient(145deg,#6d28d9 0%,#8b5cf6 100%);
      color:white;
      font-size:62px;
      font-weight:800;
      font-family:'Plus Jakarta Sans',sans-serif;
      box-shadow:0 18px 40px rgba(109,40,217,.22);
    }

    .login-brand{
      font-size:32px;
      font-weight:800;
      color:var(--ink);
      line-height:1;
      letter-spacing:-.05em;
      font-family:'Plus Jakarta Sans',sans-serif;
    }

    .login-brand span{
      color:var(--accent);
    }

    .login-subbrand{
      margin-top:10px;
      font-size:11px;
      color:var(--muted-2);
      font-weight:800;
      letter-spacing:.22em;
      text-transform:uppercase;
      font-family:'Plus Jakarta Sans',sans-serif;
    }

    .section-head{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:14px;
      margin-bottom:22px;
    }

    .section-title{
      font-size:31px;
      font-weight:800;
      color:var(--ink);
      line-height:1;
      letter-spacing:-.055em;
      font-family:'Plus Jakarta Sans',sans-serif;
    }

    .section-subtitle{
      margin-top:8px;
      font-size:14px;
      line-height:1.45;
      color:var(--muted);
    }

    .mode-pill{
      padding:9px 13px;
      border-radius:999px;
      font-size:10px;
      font-weight:800;
      text-transform:uppercase;
      letter-spacing:.16em;
      border:1px solid transparent;
      white-space:nowrap;
      font-family:'Plus Jakarta Sans',sans-serif;
    }

    .field-block{
      margin-bottom:14px;
    }

    .field-label{
      display:block;
      margin:0 0 8px 6px;
      font-size:11px;
      color:var(--muted-2);
      font-weight:800;
      text-transform:uppercase;
      letter-spacing:.14em;
      font-family:'Plus Jakarta Sans',sans-serif;
    }

    .field-input{
      width:100%;
      background:#f8fafc;
      border:1px solid var(--line);
      border-radius:22px;
      padding:15px 16px;
      font-size:14px;
      color:#0f172a;
      outline:none;
      transition:.18s ease;
      box-shadow:0 6px 18px rgba(15,23,42,.03);
    }

    .field-input:focus{
      background:#fff;
      border-color:#a78bfa;
      box-shadow:0 0 0 4px rgba(167,139,250,.18);
    }

    .errorBoxBase{
      border-radius:18px;
      padding:14px 16px;
      font-size:14px;
      font-weight:600;
      border:1px solid transparent;
      margin-top:2px;
    }

    .btn-login{
      width:100%;
      margin-top:10px;
      padding:17px 18px;
      border-radius:24px;
      background:linear-gradient(145deg,#0f172a 0%, #111827 100%);
      color:#fff;
      font-weight:800;
      font-size:11px;
      letter-spacing:.20em;
      text-transform:uppercase;
      font-family:'Plus Jakarta Sans',sans-serif;
      box-shadow:0 20px 38px rgba(15,23,42,.18);
      transition:all .2s ease;
    }

    .btn-login:hover{
      transform:translateY(-1px);
      filter:brightness(1.03);
    }

    .login-footer{
      padding-top:16px;
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:12px;
    }

    .login-footer-note{
      font-size:11px;
      color:#94a3b8;
      font-weight:600;
      text-align:center;
    }

    .btn-clear{
      font-size:11px;
      font-weight:800;
      color:#475569;
      text-transform:uppercase;
      letter-spacing:.08em;
      transition:color .18s ease;
      font-family:'Plus Jakarta Sans',sans-serif;
    }

    .btn-clear:hover{
      color:#dc2626;
    }

    #toastContainer{
      position:fixed;
      inset:0;
      z-index:50;
      display:flex;
      align-items:center;
      justify-content:center;
      pointer-events:none;
    }

    @media (max-width: 1040px){
      .shell{
        grid-template-columns:1fr;
        max-width:560px;
      }

      .left-panel{
        min-height:auto;
      }
    }

    @media (max-width: 640px){
      .page{
        padding:0;
        align-items:stretch;
        justify-content:stretch;
      }

      .shell{
        max-width:none;
        min-height:100vh;
        display:block;
      }

      .left-panel{
        display:none;
      }

      .right-panel{
        min-height:100vh;
        display:flex;
        align-items:stretch;
      }

      .login-card{
        min-height:100vh;
        border-radius:0;
        padding:24px 18px 22px;
        box-shadow:none;
        border:none;
      }

      .login-logo{
        width:170px;
        height:170px;
      }

      .login-logo-fallback{
        width:170px;
        height:170px;
        font-size:54px;
      }

      .section-head{
        flex-direction:column;
        align-items:flex-start;
      }

      .section-title{
        font-size:26px;
      }

      .hero-title{
        font-size:38px;
      }
    }