/* ============================================================
   RABBIT-OS v68 — AUTH OPENPA / CLOUD PORTAL RESTYLE
   Scope: solo #login.rabbit-auth-openpa
   ============================================================ */

#login.rabbit-auth-openpa{
  --auth-bg-main:#eef6ff;
  --auth-blue-950:#041124;
  --auth-blue-900:#061833;
  --auth-blue-800:#0b2447;
  --auth-blue-700:#164b91;
  --auth-blue-600:#2563eb;
  --auth-blue-500:#2f80ed;
  --auth-cyan-500:#18c6d9;
  --auth-teal-500:#14b8a6;
  --auth-text:#071832;
  --auth-muted:#64748b;
  --auth-soft:#94a3b8;
  --auth-white:#fff;
  --auth-card:rgba(255,255,255,.88);
  --auth-border:rgba(191,212,243,.92);
  --auth-shadow-card:0 28px 70px rgba(23,54,105,.16);
  --auth-shadow-soft:0 16px 38px rgba(23,54,105,.10);
  --auth-radius-lg:32px;
  --auth-radius-md:22px;
  --auth-radius-sm:16px;
  --auth-transition:180ms ease;

  position:fixed!important;
  inset:0!important;
  z-index:8000!important;
  display:none;
  align-items:stretch!important;
  justify-content:center!important;
  padding:0!important;
  overflow:auto!important;
  color:var(--auth-text)!important;
  font-family:"Segoe UI Variable","Segoe UI",-apple-system,BlinkMacSystemFont,"Inter","Roboto",Arial,sans-serif!important;
  background:
    linear-gradient(rgba(37,99,235,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(37,99,235,.045) 1px, transparent 1px),
    radial-gradient(circle at 18% 12%, rgba(24,198,217,.24), transparent 34%),
    radial-gradient(circle at 86% 18%, rgba(37,99,235,.18), transparent 32%),
    linear-gradient(145deg,#f8fbff 0%,#eef6ff 46%,#f7fbff 100%)!important;
  background-size:46px 46px,46px 46px,100% 100%,100% 100%,100% 100%!important;
}

#login.rabbit-auth-openpa.show{
  display:flex!important;
}

#login.rabbit-auth-openpa *,
#login.rabbit-auth-openpa *::before,
#login.rabbit-auth-openpa *::after{
  box-sizing:border-box;
}

#login.rabbit-auth-openpa .rabbit-auth-shell{
  width:100%;
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(360px,.95fr) minmax(520px,1.05fr);
  gap:34px;
  padding:42px;
  align-items:stretch;
}

#login.rabbit-auth-openpa .rabbit-auth-brand-panel{
  position:relative;
  overflow:hidden;
  border-radius:var(--auth-radius-lg);
  padding:52px;
  background:
    radial-gradient(circle at 18% 20%, rgba(24,198,217,.18), transparent 28%),
    linear-gradient(145deg,rgba(8,26,53,.98),rgba(10,44,83,.94) 58%,rgba(12,108,120,.92));
  box-shadow:var(--auth-shadow-card);
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:720px;
}

#login.rabbit-auth-openpa .rabbit-auth-brand-panel::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(120deg, transparent 0 42%, rgba(255,255,255,.08) 42% 44%, transparent 44% 100%),
    radial-gradient(circle at 78% 74%, rgba(37,99,235,.32), transparent 30%);
  pointer-events:none;
}

#login.rabbit-auth-openpa .rabbit-auth-brand-panel::after{
  content:"RABBIT";
  position:absolute;
  right:-18px;
  bottom:-34px;
  font-size:118px;
  font-weight:1000;
  letter-spacing:-.08em;
  color:rgba(255,255,255,.045);
  pointer-events:none;
}

#login.rabbit-auth-openpa .rabbit-auth-brand-content{
  position:relative;
  z-index:2;
  width:100%;
  max-width:420px;
  text-align:center;
  color:#fff;
}

#login.rabbit-auth-openpa .rabbit-auth-logo-card{
  width:148px;
  height:148px;
  margin:0 auto 28px;
  border-radius:36px;
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(238,247,255,.88));
  border:1px solid rgba(255,255,255,.58);
  box-shadow:0 28px 52px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.9);
  display:grid;
  place-items:center;
}

#login.rabbit-auth-openpa .rabbit-auth-r-mark{
  width:86px;
  height:86px;
  position:relative;
}

#login.rabbit-auth-openpa .rabbit-auth-r-mark span{
  position:absolute;
  display:block;
  border-radius:14px;
}

#login.rabbit-auth-openpa .rabbit-auth-r-mark .block-1{
  left:0;
  top:0;
  width:28px;
  height:28px;
  background:linear-gradient(135deg,var(--auth-cyan-500),var(--auth-blue-500));
}

#login.rabbit-auth-openpa .rabbit-auth-r-mark .block-2{
  left:0;
  top:38px;
  width:58px;
  height:25px;
  border-radius:14px 14px 10px 14px;
  background:linear-gradient(135deg,var(--auth-teal-500),var(--auth-cyan-500));
  clip-path:polygon(0 0,72% 0,100% 100%,0% 100%);
}

#login.rabbit-auth-openpa .rabbit-auth-r-mark .block-3{
  left:0;
  bottom:0;
  width:34px;
  height:34px;
  background:var(--auth-blue-900);
}

#login.rabbit-auth-openpa .rabbit-auth-r-mark .block-4{
  right:0;
  top:0;
  width:50px;
  height:48px;
  background:var(--auth-blue-900);
  border-radius:12px 28px 28px 12px;
}

#login.rabbit-auth-openpa .rabbit-auth-r-mark .block-5{
  right:0;
  bottom:2px;
  width:50px;
  height:24px;
  transform:skewX(38deg);
  transform-origin:right bottom;
  background:linear-gradient(135deg,var(--auth-blue-600),var(--auth-cyan-500));
  border-radius:12px;
}

#login.rabbit-auth-openpa .rabbit-auth-brand-content h1{
  margin:0!important;
  font-family:inherit!important;
  font-size:clamp(42px,5vw,68px)!important;
  line-height:.95!important;
  letter-spacing:-.07em!important;
  font-weight:950!important;
  color:#fff!important;
}

#login.rabbit-auth-openpa .rabbit-auth-brand-content p{
  margin:18px auto 0!important;
  max-width:360px;
  color:rgba(255,255,255,.74)!important;
  font-size:17px!important;
  line-height:1.55!important;
  font-weight:650!important;
}

#login.rabbit-auth-openpa .rabbit-auth-brand-meta{
  margin-top:34px;
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.20);
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.78);
  font-size:12px;
  font-weight:850;
  letter-spacing:.04em;
  text-transform:uppercase;
  backdrop-filter:blur(14px);
}

#login.rabbit-auth-openpa .rabbit-auth-brand-meta::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:#22c55e;
  box-shadow:0 0 0 5px rgba(34,197,94,.14);
}

#login.rabbit-auth-openpa .rabbit-auth-panel{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}

#login.rabbit-auth-openpa .rabbit-auth-stack{
  width:100%;
  max-width:650px;
  display:grid;
  gap:22px;
}

#login.rabbit-auth-openpa .rabbit-auth-header{
  margin-bottom:4px;
}

#login.rabbit-auth-openpa .rabbit-auth-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border-radius:999px;
  padding:8px 12px;
  background:#eaf2ff;
  border:1px solid #d6e6ff;
  color:var(--auth-blue-600);
  font-size:12px;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
}

#login.rabbit-auth-openpa .rabbit-auth-header h2{
  margin:18px 0 8px!important;
  font-size:clamp(32px,4vw,48px)!important;
  line-height:1!important;
  letter-spacing:-.06em!important;
  font-weight:950!important;
  color:var(--auth-blue-900)!important;
}

#login.rabbit-auth-openpa .rabbit-auth-header p{
  margin:0!important;
  color:var(--auth-muted)!important;
  font-size:15px!important;
  font-weight:650!important;
  line-height:1.55!important;
}

#login.rabbit-auth-openpa .rabbit-auth-card{
  position:relative;
  overflow:hidden;
  border-radius:var(--auth-radius-lg)!important;
  padding:30px!important;
  background:var(--auth-card)!important;
  border:1px solid var(--auth-border)!important;
  box-shadow:var(--auth-shadow-card)!important;
  backdrop-filter:blur(18px);
}

#login.rabbit-auth-openpa .rabbit-auth-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 90% 4%, rgba(24,198,217,.12), transparent 24%),
    linear-gradient(180deg,rgba(255,255,255,.58),transparent 44%);
  pointer-events:none;
}

#login.rabbit-auth-openpa .rabbit-auth-card > *{
  position:relative;
  z-index:1;
}

#login.rabbit-auth-openpa .rabbit-card-title{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:24px;
}

#login.rabbit-auth-openpa .rabbit-card-title h3{
  margin:0!important;
  font-size:25px!important;
  line-height:1.05!important;
  letter-spacing:-.045em!important;
  color:var(--auth-blue-900)!important;
  font-weight:950!important;
}

#login.rabbit-auth-openpa .rabbit-card-title p{
  margin:7px 0 0!important;
  color:var(--auth-muted)!important;
  font-size:13px!important;
  font-weight:650!important;
  line-height:1.45!important;
}

#login.rabbit-auth-openpa .rabbit-card-badge{
  white-space:nowrap;
  border-radius:999px;
  padding:8px 11px;
  background:#eef7ff;
  border:1px solid #d6e6ff;
  color:var(--auth-blue-600);
  font-size:11px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.08em;
}

#login.rabbit-auth-openpa .rabbit-form-grid{
  display:grid!important;
  gap:15px!important;
}

#login.rabbit-auth-openpa .rabbit-form-grid-two{
  grid-template-columns:1fr 1fr!important;
}

#login.rabbit-auth-openpa .rabbit-field{
  display:grid;
  gap:8px;
}

#login.rabbit-auth-openpa .rabbit-field label{
  font-size:12px;
  font-weight:850;
  color:var(--auth-blue-900);
  letter-spacing:.01em;
}

#login.rabbit-auth-openpa .rabbit-input-wrap{
  position:relative;
  height:52px;
  display:flex;
  align-items:center;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  border:1px solid #cfe0f7;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
  transition:border-color var(--auth-transition), box-shadow var(--auth-transition), background var(--auth-transition);
}

#login.rabbit-auth-openpa .rabbit-input-wrap:focus-within{
  border-color:rgba(37,99,235,.72);
  box-shadow:0 0 0 5px rgba(37,99,235,.10), inset 0 1px 0 rgba(255,255,255,.9);
  background:#fff;
}

#login.rabbit-auth-openpa .rabbit-input-icon{
  width:48px;
  min-width:48px;
  display:grid;
  place-items:center;
  color:#7c96b6;
}

#login.rabbit-auth-openpa .rabbit-input-icon svg,
#login.rabbit-auth-openpa .rabbit-eye-btn svg{
  width:19px;
  height:19px;
  stroke:currentColor;
  stroke-width:2;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
}

#login.rabbit-auth-openpa .rabbit-input-wrap input{
  width:100%;
  height:100%;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  color:var(--auth-text)!important;
  font-size:14px!important;
  font-weight:700!important;
  padding:0 16px 0 0!important;
  box-shadow:none!important;
}

#login.rabbit-auth-openpa .rabbit-input-wrap input::placeholder{
  color:#9eb0c5;
  font-weight:650;
}

#login.rabbit-auth-openpa .rabbit-eye-btn{
  width:44px;
  min-width:44px;
  height:44px;
  margin-right:4px;
  border:0!important;
  border-radius:50%!important;
  background:transparent!important;
  color:#7c96b6!important;
  cursor:pointer;
  display:grid;
  place-items:center;
  padding:0!important;
  transition:background var(--auth-transition), color var(--auth-transition);
}

#login.rabbit-auth-openpa .rabbit-eye-btn:hover,
#login.rabbit-auth-openpa .rabbit-eye-btn.is-visible{
  background:#eef6ff!important;
  color:var(--auth-blue-600)!important;
}

#login.rabbit-auth-openpa .rabbit-form-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:22px;
  flex-wrap:wrap;
}

#login.rabbit-auth-openpa .rabbit-remember-row{
  display:flex;
  align-items:center;
  gap:9px;
  color:var(--auth-muted);
  font-size:13px;
  font-weight:700;
}

#login.rabbit-auth-openpa .rabbit-remember-row input{
  width:17px;
  height:17px;
  accent-color:var(--auth-blue-600);
}

#login.rabbit-auth-openpa .rabbit-link-button{
  border:0!important;
  background:transparent!important;
  color:var(--auth-blue-600)!important;
  text-decoration:none;
  font-size:13px!important;
  font-weight:850!important;
  padding:0!important;
  min-height:auto!important;
  cursor:pointer;
}

#login.rabbit-auth-openpa .rabbit-link-button:hover{
  text-decoration:underline;
}

#login.rabbit-auth-openpa .rabbit-button-row{
  display:flex;
  gap:12px;
  margin-top:20px;
  flex-wrap:wrap;
}

#login.rabbit-auth-openpa .rabbit-btn{
  min-height:50px!important;
  padding:0 22px!important;
  border-radius:999px!important;
  border:1px solid transparent!important;
  font-family:inherit!important;
  font-size:14px!important;
  font-weight:900!important;
  cursor:pointer;
  transition:transform var(--auth-transition), box-shadow var(--auth-transition), background var(--auth-transition), border-color var(--auth-transition);
}

#login.rabbit-auth-openpa .rabbit-btn:hover{
  transform:translateY(-1px);
}

#login.rabbit-auth-openpa .rabbit-btn-primary{
  color:#fff!important;
  background:linear-gradient(135deg,var(--auth-blue-600),var(--auth-teal-500))!important;
  box-shadow:0 16px 32px rgba(37,99,235,.26)!important;
}

#login.rabbit-auth-openpa .rabbit-btn-primary:hover{
  box-shadow:0 20px 42px rgba(37,99,235,.32)!important;
}

#login.rabbit-auth-openpa .rabbit-btn-secondary{
  color:var(--auth-blue-900)!important;
  background:#fff!important;
  border-color:#cfe0f7!important;
  box-shadow:0 10px 24px rgba(23,54,105,.08)!important;
}

#login.rabbit-auth-openpa .rabbit-btn-secondary:hover{
  border-color:#a9c9fb!important;
  background:#f8fbff!important;
}

#login.rabbit-auth-openpa .rabbit-btn-full{
  flex:1 1 240px;
}

#login.rabbit-auth-openpa .rabbit-auth-note{
  margin-top:16px;
  padding:13px 15px;
  border-radius:18px;
  background:#f4f9ff;
  border:1px solid #dceafb;
  color:var(--auth-muted);
  font-size:12.5px;
  font-weight:650;
  line-height:1.45;
}

#login.rabbit-auth-openpa .rabbit-auth-muted{
  margin:14px 0 0!important;
  color:var(--auth-muted)!important;
  font-size:12.5px!important;
  font-weight:650!important;
  line-height:1.45!important;
}

#login.rabbit-auth-openpa .rabbit-auth-cookie-banner{
  position:fixed;
  left:24px;
  bottom:24px;
  max-width:380px;
  padding:16px 18px;
  border-radius:22px;
  background:rgba(255,255,255,.92);
  border:1px solid #d7e5f8;
  box-shadow:var(--auth-shadow-soft);
  backdrop-filter:blur(16px);
  color:var(--auth-muted);
  font-size:12.5px;
  font-weight:650;
  line-height:1.45;
  z-index:30;
}

#login.rabbit-auth-openpa .rabbit-auth-cookie-banner strong{
  display:block;
  color:var(--auth-blue-900);
  font-size:13px;
  margin-bottom:4px;
}

#login.rabbit-auth-openpa .rabbit-auth-cookie-banner #loginDbStatus{
  margin-top:10px!important;
  padding:9px 11px!important;
  border-radius:14px!important;
  background:#f4f9ff!important;
  border:1px solid #dceafb!important;
  color:var(--auth-blue-700)!important;
  font-weight:850!important;
}

/* Responsive */
@media(max-width:1120px){
  #login.rabbit-auth-openpa .rabbit-auth-shell{
    grid-template-columns:1fr;
    padding:28px;
  }

  #login.rabbit-auth-openpa .rabbit-auth-brand-panel{
    min-height:360px;
  }

  #login.rabbit-auth-openpa .rabbit-auth-brand-content h1{
    font-size:48px!important;
  }

  #login.rabbit-auth-openpa .rabbit-auth-panel{
    padding:0;
  }

  #login.rabbit-auth-openpa .rabbit-auth-stack{
    max-width:none;
  }
}

@media(max-width:720px){
  #login.rabbit-auth-openpa .rabbit-auth-shell{
    padding:16px;
    gap:18px;
  }

  #login.rabbit-auth-openpa .rabbit-auth-brand-panel{
    min-height:300px;
    padding:32px 22px;
    border-radius:26px;
  }

  #login.rabbit-auth-openpa .rabbit-auth-logo-card{
    width:112px;
    height:112px;
    border-radius:28px;
    margin-bottom:18px;
  }

  #login.rabbit-auth-openpa .rabbit-auth-r-mark{
    width:66px;
    height:66px;
    transform:scale(.78);
  }

  #login.rabbit-auth-openpa .rabbit-auth-brand-content h1{
    font-size:40px!important;
  }

  #login.rabbit-auth-openpa .rabbit-auth-brand-content p{
    font-size:14px!important;
  }

  #login.rabbit-auth-openpa .rabbit-auth-card{
    padding:22px!important;
    border-radius:26px!important;
  }

  #login.rabbit-auth-openpa .rabbit-card-title{
    display:grid;
    gap:12px;
  }

  #login.rabbit-auth-openpa .rabbit-form-grid-two{
    grid-template-columns:1fr!important;
  }

  #login.rabbit-auth-openpa .rabbit-button-row,
  #login.rabbit-auth-openpa .rabbit-form-actions{
    flex-direction:column;
    align-items:stretch;
  }

  #login.rabbit-auth-openpa .rabbit-btn,
  #login.rabbit-auth-openpa .rabbit-btn-full{
    width:100%;
    flex:auto;
  }

  #login.rabbit-auth-openpa .rabbit-auth-cookie-banner{
    left:16px;
    right:16px;
    bottom:16px;
    max-width:none;
  }
}


/* v69: usa il logo reale dell'utente */
#login.rabbit-auth-openpa .rabbit-auth-logo-card--image{
  padding:14px;
}

#login.rabbit-auth-openpa .rabbit-auth-logo-image{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:28px;
}

/* nasconde il vecchio logo disegnato in CSS se presente */
#login.rabbit-auth-openpa .rabbit-auth-r-mark{
  display:none !important;
}
