/* ── Reset & base ── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    body {
      font-family: 'Roboto', -apple-system, sans-serif;
      background: #F5F5FA;
      color: #1a1a2e;
      min-height: 100vh;
    }

    /* ── Auth screens (login) ── */
    @keyframes orb-drift-1 {
      0%, 100% { transform: translate(0, 0) scale(1); }
      50%       { transform: translate(40px, -30px) scale(1.08); }
    }
    @keyframes orb-drift-2 {
      0%, 100% { transform: translate(0, 0) scale(1); }
      50%       { transform: translate(-35px, 25px) scale(1.05); }
    }
    @keyframes orb-drift-3 {
      0%, 100% { transform: translate(0, 0) scale(1); }
      50%       { transform: translate(20px, 40px) scale(1.1); }
    }
    @keyframes logo-enter {
      0%   { opacity: 0; transform: scale(.7) translateY(16px); }
      60%  { transform: scale(1.04) translateY(-3px); }
      100% { opacity: 1; transform: scale(1) translateY(0); }
    }
    @keyframes logo-pulse {
      0%, 100% { box-shadow: 0 0 0 0 rgba(91,62,204,.35), 0 0 0 0 rgba(91,62,204,.15); }
      50%       { box-shadow: 0 0 0 14px rgba(91,62,204,.12), 0 0 0 28px rgba(91,62,204,.04); }
    }
    @keyframes text-enter {
      0%   { opacity: 0; transform: translateY(14px); }
      100% { opacity: 1; transform: translateY(0); }
    }
    @keyframes btn-enter {
      0%   { opacity: 0; transform: translateY(10px); }
      100% { opacity: 1; transform: translateY(0); }
    }

    .auth-wrap {
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      background: linear-gradient(145deg, #0D0D1A 0%, #1a0d35 55%, #0d1a2e 100%);
      padding: 24px;
      overflow: hidden;
      position: relative;
    }
    .auth-bg-orb {
      position: absolute;
      border-radius: 50%;
      filter: blur(80px);
      pointer-events: none;
    }
    .auth-orb-1 {
      width: 500px; height: 500px;
      background: radial-gradient(circle, rgba(91,62,204,.28) 0%, transparent 70%);
      top: -120px; left: -100px;
      animation: orb-drift-1 12s ease-in-out infinite;
    }
    .auth-orb-2 {
      width: 420px; height: 420px;
      background: radial-gradient(circle, rgba(46,196,182,.18) 0%, transparent 70%);
      bottom: -80px; right: -60px;
      animation: orb-drift-2 15s ease-in-out infinite;
    }
    .auth-orb-3 {
      width: 300px; height: 300px;
      background: radial-gradient(circle, rgba(139,92,246,.15) 0%, transparent 70%);
      top: 40%; left: 60%;
      animation: orb-drift-3 10s ease-in-out infinite;
    }
    .auth-content {
      position: relative;
      z-index: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      gap: 0;
    }
    .auth-logo-lockup {
      animation: logo-enter .7s cubic-bezier(.34,1.56,.64,1) both;
      margin-bottom: 28px;
    }
    .auth-logo-ring {
      width: 96px; height: 96px;
      background: rgba(255,255,255,.08);
      border: 1.5px solid rgba(255,255,255,.15);
      border-radius: 24px;
      display: flex;
      align-items: center;
      justify-content: center;
      backdrop-filter: blur(12px);
      animation: logo-pulse 3s ease-in-out infinite;
    }
    .auth-logo-img {
      height: 52px;
      width: auto;
      filter: brightness(0) invert(1);
    }
    .auth-title {
      font-family: 'Montserrat', sans-serif;
      font-size: 36px;
      font-weight: 800;
      color: #fff;
      letter-spacing: -.5px;
      margin-bottom: 10px;
      animation: text-enter .5s .3s ease both;
    }
    .auth-subtitle {
      font-size: 14px;
      color: rgba(255,255,255,.5);
      margin-bottom: 36px;
      animation: text-enter .5s .4s ease both;
    }
    .auth-error {
      background: rgba(220,38,38,.15);
      border: 1px solid rgba(252,165,165,.4);
      border-radius: 8px;
      padding: 10px 16px;
      font-size: 13px;
      color: #fca5a5;
      margin-bottom: 16px;
      display: none;
      width: 100%;
      max-width: 340px;
    }
    .btn-google {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      padding: 13px 28px;
      background: #fff;
      color: #1a1a2e;
      font-size: 15px;
      font-weight: 600;
      border: none;
      border-radius: 10px;
      cursor: pointer;
      text-decoration: none;
      transition: transform .15s, box-shadow .15s;
      box-shadow: 0 4px 24px rgba(0,0,0,.3);
      animation: btn-enter .5s .55s ease both;
      white-space: nowrap;
    }
    .btn-google:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 32px rgba(0,0,0,.4);
    }
    .btn-primary {
      width: 100%;
      padding: 12px;
      background: #5B3ECC;
      color: #fff;
      font-size: 15px;
      font-weight: 600;
      border: none;
      border-radius: 8px;
      cursor: pointer;
      transition: background .15s;
      margin-top: 4px;
    }
    .btn-primary:hover { background: #4930AA; }
    .btn-primary:disabled { background: #9ca3af; cursor: not-allowed; }

    /* ── Dashboard ── */
    .app-header {
      background: linear-gradient(135deg, #0D0D1A, #1C0D3A);
      color: #fff;
      padding: 20px 40px;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }
    .app-header-left {
      display: flex;
      align-items: center;
      gap: 12px;
    }
    .app-header-icon {
      width: 36px;
      height: 36px;
      background: rgba(255,255,255,.15);
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 18px;
    }
    .app-header h1 {
      font-size: 18px;
      font-weight: 700;
    }
    .user-info {
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .user-avatar {
      width: 34px;
      height: 34px;
      background: rgba(255,255,255,.2);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      font-weight: 700;
    }
    .user-name { font-size: 14px; font-weight: 500; }
    .btn-signout {
      background: rgba(255,255,255,.12);
      border: 1px solid rgba(255,255,255,.2);
      color: rgba(255,255,255,.8);
      padding: 6px 14px;
      border-radius: 6px;
      font-size: 13px;
      cursor: pointer;
      transition: all .15s;
    }
    .btn-signout:hover { background: rgba(255,255,255,.22); color: #fff; }

    .dashboard-body {
      max-width: 1200px;
      margin: 0 auto;
      padding: 40px 24px;
    }
    .dashboard-body h2 {
      font-size: 22px;
      font-weight: 700;
      color: #0D0D1A;
      margin-bottom: 6px;
    }
    .dashboard-body .greeting {
      font-size: 14px;
      color: #6b7280;
      margin-bottom: 32px;
    }

    .reports-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(260px, 1fr));
      gap: 20px;
    }
    .report-card {
      background: #fff;
      border-radius: 14px;
      padding: 28px 26px;
      box-shadow: 0 2px 8px rgba(0,0,0,.06);
      text-decoration: none;
      color: inherit;
      display: flex;
      flex-direction: column;
      gap: 12px;
      transition: transform .15s, box-shadow .15s;
      cursor: pointer;
    }
    .report-card:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(0,0,0,.1);
    }
    .report-card-icon {
      width: 44px;
      height: 44px;
      border-radius: 10px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 22px;
    }
    .icon-blue   { background: #EEEBFF; }
    .icon-green  { background: #E8FAF8; }
    .icon-purple { background: #f5f3ff; }
    .icon-orange { background: #FFF4E5; }
    .icon-teal   { background: #E0FAF8; }
    .report-card h3 { font-size: 16px; font-weight: 700; color: #0D0D1A; }
    .report-card p  { font-size: 13px; color: #6b7280; line-height: 1.5; }
    .report-card-arrow {
      margin-top: auto;
      font-size: 13px;
      color: #2EC4B6;
      font-weight: 600;
    }

    /* ── Utility ── */

    /* ── Altitude brand overrides ── */
    h1,h2,h3 { font-family: 'Montserrat', sans-serif; }
    .auth-card h1 { font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: 800; letter-spacing: -0.3px; }
    .app-header h1 { font-family: 'Montserrat', sans-serif; letter-spacing: 0.5px; }
    .dashboard-body h2 { font-family: 'Montserrat', sans-serif; }
    .report-card h3 { font-family: 'Montserrat', sans-serif; }
    .btn-primary { font-family: 'Montserrat', sans-serif; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; font-size: 13px; border-radius: 6px; }
    .report-card { border: 1px solid #EEEEF5; border-left: 3px solid transparent; }
    .report-card:hover { border-left-color: #5B3ECC; }
    .report-card-arrow { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 12px; letter-spacing: 0.5px; text-transform: uppercase; }
    .user-avatar { background: #5B3ECC !important; }
    [hidden] { display: none !important; }
