*{
    box-sizing:border-box;
    margin:0;
    padding:0;
}

:root{
    --rosen-dark-blue:#2323B2;
    --rosen-red:#B1162E;
    --rosen-night-blue:#375578;
    --rosen-cyan:#1395D9;
    --rosen-petrol:#137C77;
    --rosen-red-violet:#BF497C;
    --rosen-login-gradient:linear-gradient(90deg, var(--rosen-night-blue), var(--rosen-petrol));
    --bg-deep:#17333f;
    --bg-deep-2:#223f55;
    --panel-bg:linear-gradient(135deg, rgba(55,85,120,.18), rgba(19,124,119,.14));
    --panel-border:rgba(55,85,120,.24);
    --panel-highlight:rgba(255,255,255,0.16);
    --text:#f7fbff;
    --muted:#d5e2f7;
    --muted-2:#bdd0eb;
    --blue:var(--rosen-cyan);
    --blue-2:#7fd0ff;
    --blue-3:var(--rosen-dark-blue);
    --input-bg:rgba(255,255,255,0.10);
    --input-border:rgba(210,230,255,0.22);
    --shadow:0 28px 70px rgba(0,0,0,.28);
    --radius-xl:30px;
    --radius-lg:20px;
    --radius-md:16px;
}

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

body{
    font-family:'Inter', sans-serif;
    color:var(--text);
    background:#f4f7fb;
    overflow-x:hidden;
}

.login-page{
    position:relative;
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:34px;
    background:
      radial-gradient(circle at 16% 18%, rgba(177,22,46,.12), transparent 26%),
      radial-gradient(circle at 84% 12%, rgba(19,149,217,.12), transparent 28%),
      linear-gradient(135deg, #ffffff 0%, #f5f8fc 48%, #eaf0f8 100%) !important;
}

.login-bg{
    position:fixed;
    inset:0;
    opacity:1;
    background:
      linear-gradient(90deg, rgba(55,85,120,.055) 1px, transparent 1px),
      linear-gradient(180deg, rgba(55,85,120,.045) 1px, transparent 1px),
      radial-gradient(circle at 16% 18%, rgba(177,22,46,.10), transparent 28%),
      radial-gradient(circle at 86% 10%, rgba(19,149,217,.10), transparent 28%),
      linear-gradient(135deg, #ffffff, #f1f5fb);
    background-size:48px 48px,48px 48px,cover,cover,cover;
    z-index:0;
}

.bg-overlay{
    position:fixed;
    inset:0;
    z-index:1;
    opacity:1;
    background:
      linear-gradient(90deg, rgba(55,85,120,.055) 1px, transparent 1px),
      linear-gradient(180deg, rgba(55,85,120,.045) 1px, transparent 1px),
      radial-gradient(circle at 16% 18%, rgba(177,22,46,.10), transparent 28%),
      radial-gradient(circle at 86% 10%, rgba(19,149,217,.10), transparent 28%),
      linear-gradient(135deg, #ffffff, #f1f5fb);
    background-size:48px 48px,48px 48px,cover,cover,cover;
}

.login-shell{
    position:relative;
    z-index:2;
    width:min(1140px, 100%);
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:28px;
    align-items:stretch;
}

.glass-panel{
    position:relative;
    overflow:hidden;
    border-radius:var(--radius-xl);
    border:1px solid var(--panel-border);
    background:
        linear-gradient(135deg, rgba(255,255,255,.70), rgba(255,255,255,.42)),
        linear-gradient(135deg, rgba(55,85,120,.24), rgba(19,124,119,.18));
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    box-shadow:
        0 24px 60px rgba(0,0,0,.22),
        0 0 28px rgba(120,180,255,.10),
        inset 0 1px 0 rgba(255,255,255,.24),
        inset 0 -14px 30px rgba(255,255,255,.04);
}

.glass-panel::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        radial-gradient(circle at top left, rgba(255,255,255,.34), transparent 26%),
        radial-gradient(circle at top right, rgba(19,124,119,.18), transparent 30%),
        linear-gradient(135deg, rgba(55,85,120,.12), transparent 24%, transparent 70%, rgba(19,124,119,.10));
}

.panel-inner{
    position:relative;
    z-index:1;
    height:100%;
}

.info-panel{
    min-height:560px;
}

.info-panel .panel-inner{
    padding:30px 30px 28px;
}

.login-panel{
    min-height:560px;
    display:flex;
    align-items:center;
}

.login-panel .panel-inner{
    padding:34px;
}

.login-panel-inner{
    max-width:520px;
    width:100%;
    margin:0 auto;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.hero-top{
    display:flex;
    flex-direction:column;
    align-items:center;      
    justify-content:center;
    text-align:center;       
    width:100%;
    margin-bottom:26px;
}

.hero-top .rosen-wordmark{
    margin:6px 0 10px;
}

.hero-top{
    max-width:420px;   
    margin:0 auto;
}

.eyebrow{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 14px;
    border-radius:999px;
    border:1px solid rgba(19,124,119,.28);
    background:linear-gradient(90deg, rgba(19,149,217,.14), rgba(19,124,119,.12));
    color:var(--rosen-night-blue);
    font-size:12px;
    font-weight:600;
    letter-spacing:.03em;
    margin-bottom:18px;
}

.rosen-wordmark-wrap{
    width:100%;
    display:flex;
    justify-content:center;   
    align-items:center;
}

.rosen-wordmark{
    display:block;
    margin:0 auto;            
    max-width:230px;
    width:100%;
    height:auto;
    transform:translateX(4px);
}

.rosen-fallback{
    font-size:62px;
    line-height:1;
    font-weight:800;
    letter-spacing:.02em;
    color:#f8fbff;
}

.hero-copy{
    max-width:620px;
    font-size:16px;
    line-height:1.7;
    margin-bottom:15px;
    color:var(--sys-text-soft);
}

.feature-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:14px;
    margin-top:8px;
}

/* UPDATED PART */
.feature-card{
    display:flex;
    align-items:flex-start;
    gap:14px;
    width:100%;
    min-height:154px;
    height:154px;
    padding:18px 16px;
    border-radius:var(--sys-radius);
    background:rgba(255,255,255,.84);
    border:1px solid var(--sys-border);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.16),
        0 10px 24px rgba(0,0,0,.10);
}

.feature-icon{
    width:44px;
    height:44px;
    flex:0 0 44px;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:18px;
    color:#fff;
    background:var(--rosen-login-gradient);
    margin-top:14%;
}

.feature-body{
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    min-width:0;
    width:100%;
    margin-top:4%;
}

.feature-body h3{
    font-size:16px;
    font-weight:700;
    line-height:1.35;
    margin-bottom:8px;
    color:#f8fbff;
}

.feature-body p{
    color:var(--sys-text-soft);
    font-size:13px;
    line-height:1.6;
}

/* RIGHT PANEL */
.login-header{
    display:flex;
    align-items:center;
    gap:16px;
    margin-bottom:28px;
}

.login-badge-icon img{
    width:58px;
    height:58px;
    object-fit:contain;
    display:block;
}

.login-header-copy h2{
    font-size:28px;
    line-height:1.15;
    font-weight:800;
    color:#1f2933;
    margin-bottom:6px;
}

.login-header-copy p{
    color:var(--sys-text-soft);
    font-size:15px;
}

.auth-form{
    display:block;
}

.auth-form label{
    display:block;
    margin:0 0 10px;
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--rosen-petrol);
}

.input-wrap{
    position:relative;
    margin-bottom:18px;
    border-radius:var(--sys-radius);
    border:1px solid var(--sys-border);
    background:rgba(255,255,255,.84);
}

.input-wrap input{
    width:100%;
    height:56px;
    padding:0 16px 0 50px;
    border-radius:16px;
    border:0;
    background:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.06));
    color:#f8fbff;
    outline:none;
    font-size:15px;
    transition:
        border-color .2s ease,
        box-shadow .2s ease,
        background .2s ease;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.10),
        0 8px 18px rgba(0,0,0,.08);
}

.input-wrap input::placeholder{
    color:rgba(236,243,255,.68);
}

.input-wrap input:focus{
    border-color:rgba(140,205,255,.46);
    background:linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,.08));
    box-shadow:
        0 0 0 4px rgba(120,190,255,.12),
        0 0 24px rgba(127,208,255,.12),
        inset 0 1px 0 rgba(255,255,255,.12);
}

.input-icon{
    position:absolute;
    left:16px;
    top:50%;
    transform:translateY(-50%);
    color:#96aacb;
    font-size:16px;
    pointer-events:none;
}

.has-toggle input{
    padding-right:52px;
}

.password-toggle{
    position:absolute;
    right:14px;
    top:50%;
    transform:translateY(-50%);
    width:34px;
    height:34px;
    border:none;
    background:transparent;
    color:#96aacb;
    cursor:pointer;
    border-radius:10px;
    transition:background .2s ease, color .2s ease;
    display:flex;
    align-items:center;
    justify-content:center;
    z-index:3;
}

.password-toggle:hover{
    background:rgba(255,255,255,.05);
    color:var(--sys-accent);
}

.password-toggle i{
    pointer-events:none;
}

.login-btn{
    width:100%;
    height:56px;
    margin-top:8px;
    border:none;
    border-radius:16px;
    background:var(--rosen-login-gradient);
    color:#fff;
    font-size:18px;
    font-weight:700;
    letter-spacing:.01em;
    cursor:pointer;
    transition:transform .16s ease, box-shadow .16s ease, filter .16s ease;
}

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

.login-btn:active{
    transform:translateY(0);
}

.login-btn.is-loading{
    opacity:.88;
    cursor:wait;
}

.form-message{
    margin-top:14px;
    min-height:20px;
    font-size:14px;
    color:#dce7ff;
}

.server-message{
    margin-top:16px;
    margin-bottom:2px;
}

.flash-item{
  padding:12px 14px;
  border-radius:14px;
  margin:12px 0 10px;
  font-size:13px;
  font-weight:600;
  line-height:1.45;
  color:#4762ad;
  background:linear-gradient(180deg, rgba(239,246,255,.95), rgba(219,234,254,.85));
  border:1px solid rgba(37,99,235,.22);
}

.flash-item.error,
.flash-item.danger{
    color:#b1162e;
    border:0;
    background:transparent;
    padding:0;
    margin:10px 0 0;
    border-radius:0;
}

.flash-item.success{
    color:#111827;
    border-color:rgba(48,209,127,.24);
    background:rgba(48,209,127,.10);
}

.form-message.error{
    color:#ff9cab;
}

.form-message.success{
    color:#111827;
}

.login-footer-links{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:16px;
    margin-top:24px;
    color:var(--muted);
    font-size:14px;
}

.login-footer-links a{
    text-decoration:none;
    transition:color .2s ease;
    color:var(--rosen-night-blue);
}

.login-footer-links a:hover{
    color:var(--rosen-petrol);
}

.session-modal-overlay{
    align-items:center;
    background:rgba(5, 16, 32, .58);
    bottom:0;
    display:flex;
    justify-content:center;
    left:0;
    padding:24px;
    position:fixed;
    right:0;
    top:0;
    z-index:50;
}

.session-modal-card{
    background:#fff;
    border:1px solid rgba(55,85,120,.18);
    border-radius:20px;
    box-shadow:0 28px 70px rgba(0,0,0,.28);
    color:#1f2933;
    max-width:460px;
    padding:30px;
    text-align:center;
    width:min(100%, 460px);
}

.session-modal-icon{
    align-items:center;
    background:linear-gradient(135deg, rgba(19,149,217,.14), rgba(19,124,119,.16));
    border-radius:16px;
    color:var(--rosen-petrol);
    display:inline-flex;
    font-size:24px;
    height:54px;
    justify-content:center;
    margin-bottom:16px;
    width:54px;
}

.session-modal-card h3{
    color:#1f2933;
    font-size:22px;
    line-height:1.25;
    margin-bottom:10px;
}

.session-modal-card p{
    color:#506075;
    font-size:14px;
    line-height:1.6;
    margin-bottom:22px;
}

.session-modal-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    justify-content:center;
}

.session-modal-actions form{
    margin:0;
}

.session-primary-btn,
.session-secondary-btn{
    align-items:center;
    border:0;
    border-radius:12px;
    cursor:pointer;
    display:inline-flex;
    font:inherit;
    font-size:14px;
    font-weight:700;
    justify-content:center;
    min-height:44px;
    min-width:128px;
    padding:0 18px;
    text-decoration:none;
}

.session-primary-btn{
    background:var(--rosen-login-gradient);
    color:#fff;
}

.session-secondary-btn{
    background:#eef2f7;
    color:#253044;
}

.session-primary-btn:disabled,
.session-secondary-btn:disabled{
    cursor:not-allowed;
    opacity:.58;
}

.session-osc-form input{
    border:1px solid rgba(55,85,120,.26);
    border-radius:14px;
    color:#1f2933;
    display:block;
    font-size:28px;
    font-weight:800;
    height:58px;
    letter-spacing:.18em;
    margin:0 auto 18px;
    max-width:220px;
    text-align:center;
    width:100%;
}

.login-footer-links .divider{
    width:1px;
    height:14px;
    background:rgba(255,255,255,.18);
}

@media (max-width: 1024px){
  .login-shell{
    grid-template-columns:1fr;
    max-width:760px;
  }
  .info-panel,
  .login-panel{
    min-height:auto;
  }
  .login-panel-inner{
    max-width:100%;
  }
}

@media (max-width: 768px){
  .login-page{
    padding:16px;
    align-items:flex-start;
  }
  .login-shell{
    gap:16px;
    margin-top:10px;
  }
  .info-panel .panel-inner,
  .login-panel .panel-inner{
    padding:22px;
  }
  .rosen-wordmark{
    width:min(190px, 100%);
  }
  .rosen-fallback{
    font-size:48px;
  }
  .hero-copy{
    font-size:15px;
    line-height:1.65;
    margin-bottom:18px;
  }
  .feature-grid{
    grid-template-columns:1fr;
  }
  .feature-card{
    min-height:auto;
    height:auto;
    padding:16px;
  }
  .login-header{
    margin-bottom:22px;
  }
  .login-header-copy h2{
    font-size:24px;
  }
  .login-badge-icon{
    width:50px;
    height:50px;
    border-radius:14px;
  }
  .login-badge-icon img{
    width:26px;
    height:26px;
  }
  .input-wrap input,
  .login-btn{
    height:52px;
    border-radius:14px;
  }
  .login-footer-links{
    flex-wrap:wrap;
    gap:10px;
    font-size:13px;
  }
}

@media (max-width: 560px){
  .eyebrow{
    font-size:11px;
  }
  .rosen-wordmark{
    width:min(170px, 100%);
  }
  .rosen-fallback{
    font-size:42px;
  }
  .login-header{
    align-items:flex-start;
  }
  .login-header-copy h2 br{
    display:none;
  }
  .login-header-copy h2{
    font-size:22px;
  }
  .login-header-copy p{
    font-size:14px;
  }
}

/* Login feedback pills */
.auth-form .server-message{
    margin-top:12px;
    margin-bottom:0;
    min-height:0;
}

.auth-form .flash-item{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:38px;
    padding:9px 14px;
    margin:0;
    border-radius:999px;
    font-size:13px;
    font-weight:800;
    line-height:1.3;
    text-align:center;
    box-shadow:0 10px 22px rgba(32, 59, 97, .10);
}

.auth-form .flash-item.danger,
.auth-form .flash-item.error{
    color:#b1162e;
    border:1px solid rgba(177, 22, 46, .22);
    background:rgba(255, 241, 242, .94);
}

.auth-form .flash-item.success{
    color:#0f766e;
    border:1px solid rgba(19, 124, 119, .24);
    background:rgba(229, 248, 244, .96);
}

.auth-form .flash-item.info,
.auth-form .flash-item.warning{
    color:#375578;
    border:1px solid rgba(55, 85, 120, .22);
    background:rgba(239, 246, 255, .96);
}
