/* ==========================================================================
   Swiss Orbit - access screens (sign in, access denied, password change)
   Split shell: brand/story panel on the left, the form card on the right.
   Mirrors the Swiss VMS access pattern and uses the same house tokens.
   ========================================================================== */

.lg-shell {
    display: grid;
    grid-template-columns: 1.08fr .92fr;
    min-height: 100vh;
}

/* ---------- left: brand + what the platform does ---------- */
.lg-brandpane {
    position: relative;
    overflow: hidden;
    padding: clamp(28px, 3.4vw, 54px);
    display: flex;
    flex-direction: column;
    background: var(--grad-navy);
    color: var(--text-on-navy, #e9eef6);
    isolation: isolate;
}

.lg-brandpane::after {
    /* faint operations grid */
    content: "";
    position: absolute; inset: 0; z-index: -1;
    background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
                      linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
    background-size: 46px 46px;
    mask-image: radial-gradient(100% 80% at 30% 20%, #000 35%, transparent 85%);
}

.lg-orbitart {
    position: absolute;
    right: -16%; bottom: -22%;
    width: min(760px, 86%);
    z-index: -1;
    opacity: .5;
    pointer-events: none;
}

.lg-wordmark { display: flex; align-items: center; gap: 13px; }
.lg-wordmark .mk { width: 44px; height: 44px; flex: 0 0 44px; display: block; }
.lg-wordmark .swiss-mark .m-a { fill: #ffffff; }
.lg-wordmark .swiss-mark .m-b { fill: #9fd4bc; }
.lg-wordmark .nm { font-size: 19px; font-weight: 700; letter-spacing: -.012em; color: #fff; }
.lg-wordmark .sub {
    font-family: var(--font-mono);
    font-size: 10px; font-weight: 500; letter-spacing: .17em; text-transform: uppercase;
    color: rgba(255,255,255,.52); margin-top: 3px;
}

.lg-pitch { margin: auto 0; max-width: 620px; padding: 32px 0; }

.lg-eyebrow {
    font-family: var(--font-mono);
    font-size: 10.5px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase;
    color: var(--green-hi);
    display: flex; align-items: center; gap: 9px;
    margin-bottom: 20px;
}
.lg-eyebrow::after { content: ""; flex: 1 1 auto; height: 1px; background: linear-gradient(90deg, rgba(37,184,125,.42), transparent); }

.lg-pitch h1 {
    margin: 0 0 16px;
    font-size: clamp(2.1rem, 1.5rem + 2.1vw, 3.1rem);
    line-height: 1.04;
    letter-spacing: -.034em;
    font-weight: 700;
    color: #fff;
}
.lg-pitch h1 em { font-style: normal; color: var(--green-hi); }

.lg-pitch .lede {
    margin: 0 0 30px;
    font-size: clamp(.95rem, .9rem + .2vw, 1.06rem);
    line-height: 1.55;
    color: rgba(233,238,246,.74);
    max-width: 52ch;
}

/* capability grid - what the system actually does */
.lg-caps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 26px; margin: 0; padding: 0; list-style: none; }
.lg-caps li { display: flex; gap: 11px; align-items: flex-start; }
.lg-caps i {
    flex: 0 0 30px; height: 30px; width: 30px;
    display: grid; place-items: center;
    border-radius: 9px;
    background: rgba(37,184,125,.13);
    border: 1px solid rgba(37,184,125,.26);
    color: var(--green-hi);
    font-size: 14px;
}
.lg-caps .t { font-size: 13.5px; font-weight: 600; color: #fff; line-height: 1.3; }
.lg-caps .d { font-size: 12px; color: rgba(233,238,246,.56); line-height: 1.42; margin-top: 2px; }

.lg-brandfoot {
    display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
    font-size: 11.5px; color: rgba(233,238,246,.5);
    border-top: 1px solid rgba(255,255,255,.1);
    padding-top: 16px;
}
.lg-brandfoot a { color: rgba(233,238,246,.74); font-weight: 600; }
.lg-brandfoot a:hover { color: var(--green-hi); }
.lg-brandfoot .clock { font-family: var(--font-mono); letter-spacing: .06em; margin-left: auto; }

/* ---------- right: the form ---------- */
.lg-formpane {
    position: relative;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    padding: clamp(24px, 3vw, 48px);
    background: var(--bg);
}

.lg-themebtn {
    position: absolute; top: 20px; right: 22px;
    width: 38px; height: 38px; border-radius: 50%;
    display: grid; place-items: center;
    background: var(--surface); border: 1px solid var(--border);
    color: var(--text-muted); cursor: pointer; font-size: 15px;
    transition: color var(--d-2, .18s) ease, border-color var(--d-2, .18s) ease;
}
.lg-themebtn:hover { color: var(--orbit-accent); border-color: var(--orbit-accent); }

.lg-card {
    width: min(452px, 100%);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: clamp(26px, 2.4vw, 34px);
}

.lg-card .lg-eyebrow { color: var(--orbit-accent); margin-bottom: 14px; }
.lg-card .lg-eyebrow::after { background: linear-gradient(90deg, var(--border-strong), transparent); }

.lg-card h1 {
    margin: 0 0 6px;
    font-size: 30px; font-weight: 700; letter-spacing: -.028em;
    color: var(--text);
}
.lg-card .sub { margin: 0 0 24px; font-size: 13.5px; color: var(--text-muted); line-height: 1.5; }

.lg-field { margin-bottom: 16px; }
.lg-field > label {
    display: block;
    font-size: 12px; font-weight: 600; letter-spacing: .01em;
    color: var(--text-muted);
    margin-bottom: 7px;
}

/* input with a leading icon box, matching the VMS sign-in field */
.lg-input { display: flex; align-items: stretch; }
.lg-input .ic {
    flex: 0 0 44px;
    display: grid; place-items: center;
    border: 1px solid var(--border);
    border-right: 0;
    border-radius: var(--radius-sm) 0 0 var(--radius-sm);
    background: var(--surface-2);
    color: var(--orbit-accent);
    font-size: 15px;
}
.lg-input .form-control {
    flex: 1 1 auto; min-width: 0;
    height: 46px;
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    font-size: 14px;
}
.lg-input.has-toggle .form-control { border-radius: 0; }
.lg-input .peek {
    flex: 0 0 46px;
    border: 1px solid var(--border);
    border-left: 0;
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    background: var(--surface-2);
    color: var(--text-dim);
    cursor: pointer; font-size: 15px;
}
.lg-input .peek:hover { color: var(--orbit-accent); }
.lg-input:focus-within .ic,
.lg-input:focus-within .peek { border-color: var(--orbit-accent); }
.lg-input:focus-within .form-control { border-color: var(--orbit-accent); box-shadow: none; }
.lg-input:focus-within { border-radius: var(--radius-sm); box-shadow: 0 0 0 3px var(--orbit-accent-soft); }

.lg-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 18px 0 22px; }
.lg-row .input-check { margin: 0; font-size: 12.5px; color: var(--text-muted); }
.lg-row .hint { font-size: 12.5px; color: var(--text-dim); }

.lg-submit { width: 100%; height: 48px; font-size: 14.5px; border-radius: var(--radius-sm); }

.lg-note {
    display: flex; gap: 8px; align-items: flex-start;
    margin: 18px 0 0;
    font-size: 11.5px; line-height: 1.5; color: var(--text-dim);
}
.lg-note i { color: var(--orbit-accent); font-size: 12.5px; margin-top: 1px; }

.lg-alert {
    display: flex; gap: 9px; align-items: flex-start;
    border: 1px solid rgba(232,91,107,.34);
    border-left: 3px solid var(--crit);
    background: rgba(232,91,107,.1);
    border-radius: var(--radius-sm);
    padding: 11px 13px; margin-bottom: 18px;
    font-size: 12.5px; line-height: 1.45; color: var(--text);
}
.lg-alert > i { color: var(--crit); font-size: 13.5px; margin-top: 1px; }
.lg-alert ul { margin: 0; padding-left: 16px; }
.lg-alert.warn { border-color: rgba(255,177,0,.34); border-left-color: var(--warn); background: rgba(255,177,0,.1); }
.lg-alert.warn > i { color: var(--warn); }

.lg-formfoot {
    width: min(452px, 100%);
    margin-top: 18px;
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
    font-size: 11px; color: var(--text-dim);
}
.lg-secure { display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-mono); letter-spacing: .14em; text-transform: uppercase; font-size: 10px; }
.lg-secure .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ok); box-shadow: 0 0 0 3px rgba(31,157,107,.18); }

/* ---------- responsive ---------- */
@media (max-width: 1000px) {
    .lg-shell { grid-template-columns: 1fr; }
    .lg-brandpane { min-height: auto; padding: 26px 24px 30px; }
    .lg-pitch { margin: 22px 0 0; padding: 0; }
    .lg-pitch h1 { font-size: clamp(1.7rem, 1.3rem + 2.4vw, 2.2rem); }
    .lg-caps { grid-template-columns: 1fr; gap: 11px; }
    .lg-caps .d { display: none; }
    .lg-brandfoot { margin-top: 24px; }
    .lg-orbitart { opacity: .3; right: -34%; bottom: -30%; }
}
@media (max-width: 560px) {
    .lg-caps li:nth-child(n+5) { display: none; }
    .lg-card { padding: 22px 18px; border-radius: var(--radius); }
    .lg-brandfoot .clock { display: none; }
    /* keep the toggle clear of the card and stop the options row cramping */
    .lg-formpane { padding-top: 62px; }
    .lg-themebtn { top: 14px; right: 16px; }
    .lg-row { flex-direction: column; align-items: flex-start; gap: 8px; margin: 14px 0 18px; }
    .lg-formfoot { flex-direction: column; align-items: flex-start; gap: 6px; }
}


/* ---------- shared access-screen pieces (denied, password change) ---------- */
.lg-stateicon {
    width: 52px; height: 52px; border-radius: 15px;
    display: grid; place-items: center;
    font-size: 24px; margin: 2px 0 18px;
}
.lg-stateicon.crit { background: rgba(232,91,107,.14); border: 1px solid rgba(232,91,107,.32); color: var(--crit); }
.lg-stateicon.warn { background: rgba(255,177,0,.14); border: 1px solid rgba(255,177,0,.32); color: var(--warn); }

.lg-path {
    font-family: var(--font-mono);
    font-size: 11.5px; color: var(--text-dim);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 9px 11px; margin: 0 0 20px;
    word-break: break-all;
}

.lg-actions { display: grid; gap: 10px; }
.lg-actions form { margin: 0; }
.lg-actions .btn { width: 100%; justify-content: center; }

.lg-cancel { margin: 16px 0 0; text-align: center; font-size: 12.5px; }
.lg-cancel a { color: var(--text-muted); }
.lg-cancel a:hover { color: var(--orbit-accent); }

/* ---------- second factor ---------- */
.lg-stateicon.ok { background: rgba(31,157,107,.14); border: 1px solid rgba(31,157,107,.32); color: var(--ok); }

.lg-code { letter-spacing: .42em; font-size: 20px !important; text-align: center; font-weight: 600; }
.lg-code::placeholder { letter-spacing: .42em; font-weight: 400; }

.lg-qr {
    display: grid; place-items: center;
    background: #ffffff;                 /* a scanner wants real white, in either theme */
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 14px; margin: 4px 0 16px;
}
.lg-qr svg { width: 196px; height: 196px; display: block; }

.lg-manual {
    display: flex; flex-direction: column; gap: 7px;
    margin: 0 0 22px; font-size: 12px; color: var(--text-dim);
}
.lg-manual code {
    font-size: 13.5px; letter-spacing: .1em; color: var(--text);
    background: var(--surface-2); border: 1px solid var(--border);
    border-radius: var(--radius-sm); padding: 10px 12px;
    user-select: all; word-break: break-all;
}

.lg-codes {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px;
    list-style: none; margin: 4px 0 0; padding: 14px;
    background: var(--surface-2); border: 1px solid var(--border);
    border-radius: var(--radius);
}
.lg-codes li {
    font-size: 13px; letter-spacing: .06em; color: var(--text);
    padding: 5px 8px; background: var(--surface);
    border: 1px solid var(--border); border-radius: var(--radius-sm);
    text-align: center; user-select: all;
}

.lg-facts { margin: 0 0 4px; }
.lg-facts > div { display: flex; align-items: baseline; justify-content: space-between; gap: 14px;
                  padding: 11px 0; border-bottom: 1px solid var(--border); }
.lg-facts dt { font-size: 12.5px; color: var(--text-muted); margin: 0; }
.lg-facts dd { margin: 0; font-size: 17px; font-weight: 600; color: var(--text); }
.lg-facts dd.low { color: var(--warn); }

.lg-danger { margin-top: 22px; border-top: 1px solid var(--border); padding-top: 14px; }
.lg-danger summary {
    cursor: pointer; font-size: 12.5px; color: var(--text-dim);
    list-style: none; display: inline-flex; align-items: center; gap: 7px;
}
.lg-danger summary::before { content: "\F5B3"; font-family: "bootstrap-icons"; font-size: 13px; }
.lg-danger summary:hover { color: var(--crit); }
.lg-danger[open] summary { color: var(--crit); margin-bottom: 4px; }

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