/* ============================================================
   login-landing.css
   Full-page landing layout for the Login page only.
   All colours reference exact site.css tokens — no custom values.
   ============================================================ */

/* Lock the whole page to exactly one viewport — no scrollbar ever */
.ll-body {
    display: flex;
    flex-direction: column;
    height: 100vh;
    overflow: hidden;
    background: var(--bg-page);
}

/* ── Header ──────────────────────────────────────────────── */
.ll-header {
    height: 62px;
    flex-shrink: 0;
    background: #fff;
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 4%;
    position: relative;
    z-index: 10;
}
.ll-brand      { display: flex; align-items: center; gap: 12px; }
.ll-brand-mark {
    width: 34px; height: 34px; border-radius: 8px; flex-shrink: 0;
    background: linear-gradient(135deg, var(--primary), #4C8DF5);
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-weight: 700; font-size: 14px;
}
.ll-brand-text h1 { font-size: 15px; font-weight: 700; color: var(--text-dark); margin: 0; line-height: 1.2; }
.ll-h-divider     { width: 1px; height: 22px; background: var(--border); margin: 0 10px; }
.ll-tagline       { color: var(--text-muted); font-size: 12.5px; }
.ll-tagline span  { margin-right: 8px; }
.ll-help-link {
    display: flex; align-items: center; gap: 7px;
    color: var(--primary); font-size: 13px; font-weight: 600;
    text-decoration: none;
}
.ll-help-link:hover { text-decoration: underline; }
.ll-help-icon {
    width: 18px; height: 18px;
    border: 1.8px solid var(--primary); border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 10px; font-weight: 700;
}

/* ── Main — fills all remaining height, clips overflow ───── */
.ll-main {
    flex: 1;
    min-height: 0;           /* required so flex child can shrink below content size */
    position: relative;
    display: flex;
    align-items: center;
    overflow: hidden;
}

/* decorative circles */
.ll-bg-circle {
    position: absolute; width: 420px; height: 420px; border-radius: 50%;
    background: rgba(18, 102, 241, .06);
    right: -140px; top: -140px; pointer-events: none;
}
.ll-bg-circle-sm {
    position: absolute; width: 240px; height: 240px; border-radius: 50%;
    background: rgba(18, 102, 241, .05);
    left: -100px; top: 30%; pointer-events: none;
}

/* ── Content grid ────────────────────────────────────────── */
.ll-content {
    width: 1120px; max-width: 90%;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 52px;
    align-items: center;
    position: relative; z-index: 2;
    /* No vertical padding — let flexbox centre it naturally */
    padding: 0;
}

/* ── Left intro ──────────────────────────────────────────── */
.ll-intro h1 {
    font-size: clamp(28px, 3vw, 40px);
    font-weight: 800; line-height: 1.15;
    letter-spacing: -1px;
    color: var(--text-dark); margin-bottom: 10px;
}
.ll-intro-sub {
    font-size: 16px; font-weight: 600; line-height: 1.4;
    color: var(--primary); margin-bottom: 10px;
}
.ll-intro-desc {
    max-width: 500px; font-size: 14px; line-height: 1.65;
    color: var(--text-muted); margin-bottom: 24px;
}
.ll-benefits { display: flex; flex-direction: column; gap: 14px; }
.ll-benefit  { display: flex; align-items: center; gap: 14px; }
.ll-b-icon {
    width: 52px; height: 52px; flex: 0 0 52px; border-radius: 50%;
    background: var(--sidebar-active-bg);
    display: flex; align-items: center; justify-content: center;
    color: var(--primary);
}
.ll-b-icon svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ll-b-content h3 { font-size: 14px; font-weight: 700; color: var(--text-dark); margin-bottom: 3px; }
.ll-b-content p  { font-size: 12.5px; color: var(--text-muted); line-height: 1.55; max-width: 360px; margin: 0; }

/* ── Login card ──────────────────────────────────────────── */
.ll-card {
    width: 100%; max-width: 440px; justify-self: end;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 24px 28px 20px;
    box-shadow: 0 8px 32px rgba(17, 24, 39, .09), 0 2px 6px rgba(17, 24, 39, .04);
}
.ll-card-brand { display: flex; align-items: center; gap: 11px; margin-bottom: 18px; }
.ll-card-mark {
    width: 36px; height: 36px; border-radius: 8px; flex-shrink: 0;
    background: linear-gradient(135deg, var(--primary), #4C8DF5);
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-weight: 700; font-size: 14px;
}
.ll-card-title    { font-size: 14px; font-weight: 700; color: var(--text-dark); }
.ll-card-subtitle { font-size: 12px; color: var(--text-muted); margin-top: 2px; }
.ll-card h2   { font-size: 20px; font-weight: 800; color: var(--text-dark); margin: 0 0 3px; }
.ll-card-desc { font-size: 13px; color: var(--text-muted); margin-bottom: 18px; }

/* form fields */
.ll-form-group    { margin-bottom: 13px; }
.ll-label-row     { display: flex; justify-content: space-between; align-items: center; margin-bottom: 5px; }
.ll-label-row label { font-size: 12px; font-weight: 600; color: #374151; }
.ll-label-row a   { font-size: 12px; color: var(--text-muted); }
.ll-label-row a:hover { color: var(--primary); text-decoration: none; }
.ll-input {
    width: 100%; height: 38px;
    border: 1px solid var(--border); border-radius: 8px;
    padding: 0 11px; font-size: 13px; font-family: var(--font);
    color: var(--text-dark); background: #fff;
    transition: border-color .15s, box-shadow .15s;
}
.ll-input::placeholder { color: var(--text-faint); }
.ll-input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-tint); }
.ll-pw-wrap     { position: relative; }
.ll-pw-wrap .ll-input { padding-right: 40px; }
.ll-pw-toggle {
    position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
    border: none; background: transparent; cursor: pointer;
    color: var(--text-faint); padding: 3px; display: flex;
}
.ll-pw-toggle:hover { color: var(--text-muted); }

/* checkbox */
.ll-chk-row   { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; }
.ll-chk-row input { width: 15px; height: 15px; accent-color: var(--primary); }
.ll-chk-row label { font-size: 12.5px; font-weight: 500; color: #374151; cursor: pointer; }

/* sign-in button */
.ll-sign-in-btn {
    width: 100%; height: 40px; border: none; border-radius: 8px;
    background: var(--primary); color: #fff;
    font-size: 13.5px; font-weight: 700; cursor: pointer; font-family: var(--font);
    transition: background .15s, transform .1s;
}
.ll-sign-in-btn:hover  { background: var(--primary-dark); transform: translateY(-1px); }
.ll-sign-in-btn:active { transform: translateY(0); }

/* demo box */
.ll-demo {
    background: var(--primary-tint); border-radius: 8px;
    padding: 9px 12px; margin-top: 12px; margin-bottom: 12px;
}
.ll-demo b    { font-size: 12px; color: var(--primary-dark); display: block; margin-bottom: 1px; }
.ll-demo span { font-size: 12px; color: var(--primary-dark); line-height: 1.5; }

/* form footer links */
.ll-form-links {
    display: flex; flex-direction: column; align-items: center;
    gap: 5px; font-size: 12.5px; color: var(--text-muted);
}
.ll-form-links a { color: var(--primary); font-weight: 600; }

/* ── Decorative waves ────────────────────────────────────── */
.ll-waves {
    position: absolute; bottom: 0; left: 0; width: 100%;
    height: 120px; overflow: hidden; pointer-events: none;
    z-index: 1;
}
.ll-wave {
    position: absolute; left: -5%; width: 110%; height: 100px;
    border-radius: 50% 50% 0 0;
}
.ll-wave-1 { bottom: -52px; background: rgba(18, 102, 241, .08); transform: rotate(-2deg); }
.ll-wave-2 { bottom: -72px; background: rgba(18, 102, 241, .06); transform: rotate(2deg); }

/* decorative illustration */
.ll-illus  { position: absolute; left: 22%; bottom: 0; width: 220px; height: 88px; pointer-events: none; opacity: .75; z-index: 2; }
.ll-book   { position: absolute; bottom: 16px; left: 22px; width: 120px; height: 18px; border-radius: 4px; border: 3px solid #4C8DF5; background: #fff; box-shadow: inset 0 -3px 0 var(--primary-tint); }
.ll-book2  { position: absolute; bottom: 5px; left: 12px; width: 128px; height: 20px; border-radius: 4px; background: var(--primary); border: 3px solid #4C8DF5; }
.ll-book2::after { content: ''; position: absolute; right: 14px; top: 4px; width: 56px; height: 3px; border-radius: 2px; background: var(--primary-tint); }
.ll-plant  { position: absolute; bottom: 4px; right: 26px; width: 42px; height: 40px; background: #F8FBFF; border: 3px solid #4C8DF5; border-top: none; border-radius: 0 0 8px 8px; }
.ll-stem   { position: absolute; width: 3px; height: 46px; background: var(--primary); left: 20px; bottom: 34px; }
.ll-leaf   { position: absolute; width: 20px; height: 10px; background: #4C8DF5; border-radius: 100% 0 100% 0; }
.ll-leaf1  { left: 2px;  bottom: 54px; transform: rotate(-30deg); }
.ll-leaf2  { left: 20px; bottom: 66px; transform: rotate(30deg); }
.ll-leaf3  { left: 21px; bottom: 48px; transform: rotate(-20deg); }

/* ── Footer ──────────────────────────────────────────────── */
.ll-footer {
    height: 48px; flex-shrink: 0;
    background: #fff;
    border-top: 1px solid var(--border);
    display: flex; justify-content: center; align-items: center;
    color: var(--text-muted); font-size: 12.5px;
    gap: 6px; flex-wrap: wrap; z-index: 10; position: relative;
}
.ll-f-sep { width: 1px; height: 14px; background: var(--border); margin: 0 4px; }
.ll-footer a { color: var(--primary); font-weight: 500; text-decoration: none; }
.ll-footer a:hover { text-decoration: underline; }

/* ── Responsive ──────────────────────────────────────────── */

/* Narrower screens: tighten the two-column gap */
@media (max-width: 1100px) {
    .ll-content { gap: 36px; }
    .ll-tagline, .ll-h-divider { display: none; }
}

/* Below 900px: single-column, allow internal scroll within main */
@media (max-width: 900px) {
    .ll-body    { height: auto; overflow: auto; }
    .ll-main    { overflow: visible; align-items: flex-start; }
    .ll-content {
        grid-template-columns: 1fr;
        padding: 32px 0 80px;
    }
    .ll-intro   { text-align: center; }
    .ll-intro-desc { margin: 0 auto 20px; }
    .ll-benefit { max-width: 440px; margin: auto; text-align: left; }
    .ll-card    { justify-self: center; }
    .ll-illus   { display: none; }
}

@media (max-width: 580px) {
    .ll-header  { padding: 0 16px; }
    .ll-brand-text h1 { font-size: 13.5px; }
    .ll-content { max-width: calc(100% - 24px); padding: 24px 0 60px; }
    .ll-intro h1 { font-size: 28px; }
    .ll-card    { padding: 20px 18px 18px; border-radius: 12px; }
    .ll-footer  { height: auto; min-height: 52px; padding: 10px; flex-direction: column; gap: 6px; text-align: center; }
}
