/* Sign in and About pages. Colours follow the theme: --ui-accent / --ui-surface / --ui-text ... (see Common.css and Content/themes), orange by default. */
.lg-body { margin: 0; font-family: Calibri, "Segoe UI", Arial, sans-serif; background: var(--ui-field, #f5f7fa); color: var(--ui-text, #1f2933); }
.lg-page { --lg-accent: var(--ui-accent, #ff6a00); min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(380px, .85fr); }

/* left: the society */
.lg-hero { position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; padding: 48px 56px; color: #fff;
    background: linear-gradient(150deg, var(--lg-accent) 0%, var(--lg-accent) 100%); }


@supports (color: color-mix(in srgb, red 50%, blue)) { .lg-hero { background: linear-gradient(150deg, var(--lg-accent) 0%, color-mix(in srgb, var(--lg-accent) 38%, #0b0b0b) 100%); } }
.lg-hero::before, .lg-hero::after { content: ""; position: absolute; border-radius: 50%; background: rgba(255,255,255,.08); pointer-events: none; }
.lg-hero::before { width: 520px; height: 520px; right: -180px; top: -160px; }
.lg-hero::after { width: 380px; height: 380px; left: -140px; bottom: -150px; background: rgba(0,0,0,.14); }
.lg-hero-in { position: relative; z-index: 1; max-width: 640px; text-align: center; }
.lg-seal { display: inline-flex; align-items: center; justify-content: center; width: 190px; height: 190px; border-radius: 50%; background: #fff; box-shadow: 0 10px 30px rgba(0,0,0,.35); margin-bottom: 26px; }
.lg-seal img { width: 128px; height: auto; }
.lg-society { margin: 0 0 12px; font-family: Cambria, Georgia, serif; font-size: 34px; line-height: 1.2; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: #fff; text-shadow: 0 2px 6px rgba(0,0,0,.35); }
.lg-tag { margin: 0 0 26px; font-size: 18px; opacity: .92; }
.lg-points { list-style: none; margin: 0 0 28px; padding: 0; display: inline-grid; gap: 10px; text-align: left; font-size: 17px; }
.lg-points li::before { content: "\2713"; display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; margin-right: 10px; border-radius: 50%; background: rgba(255,255,255,.2); font-size: 14px; font-weight: 700; }
.lg-link, .lg-link:visited { display: inline-block; padding: 9px 22px; border: 1.5px solid rgba(255,255,255,.85); border-radius: 12px; color: #fff; font-weight: 700; text-decoration: none; transition: transform .12s, box-shadow .12s, background .12s; }
.lg-link:hover { background: rgba(255,255,255,.16); transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0,0,0,.30); color: #fff; }

/* right: the sign in card */
.lg-panel { display: flex; align-items: center; justify-content: center; padding: 40px 28px; background: var(--ui-field, #f5f7fa); }
.lg-card { width: 100%; max-width: 400px; padding: 34px 34px 26px; background: var(--ui-surface, #fff); border: 1px solid var(--ui-border, #d3dae3); border-top: 5px solid var(--lg-accent); border-radius: 16px; box-shadow: 0 14px 40px rgba(0,0,0,.18); }
.lg-logo { display: block; width: 74px; height: 74px; margin: 0 auto 10px; }
.lg-card h2 { margin: 0 0 4px; text-align: center; font-size: 27px; font-weight: 700; color: var(--ui-text, #1f2933); }
.lg-sub { margin: 0 0 24px; text-align: center; color: var(--ui-muted, #5f6b7a); }

.lg-field { position: relative; margin-bottom: 20px; }
.lg-input { display: block; width: 100%; box-sizing: border-box; height: 56px; padding: 24px 44px 6px 14px; border: 1px solid var(--ui-border, #d3dae3); border-radius: 12px; background: var(--ui-field, #f5f7fa); color: var(--ui-text, #1f2933); font: 600 17px Calibri, "Segoe UI", Arial, sans-serif; outline: none; transition: border-color .15s, box-shadow .15s; }
.lg-input:focus { border-color: var(--lg-accent); box-shadow: 0 0 0 3px transparent; }

@supports (color: color-mix(in srgb, red 50%, blue)) { .lg-input:focus { box-shadow: 0 0 0 3px color-mix(in srgb, var(--lg-accent) 25%, transparent); } }
.lg-field label { position: absolute; left: 15px; top: 18px; font-size: 16px; font-weight: 600; color: var(--ui-muted, #5f6b7a); pointer-events: none; transition: all .15s ease; }
.lg-input:focus + label, .lg-input:not(:placeholder-shown) + label { top: 7px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; }
.lg-input:focus + label { color: var(--lg-accent); }
.lg-err { pointer-events: none; display: block; margin: 4px 4px 0; font-size: 13px; font-weight: 700; color: #e53935; }
.lg-eye { display: flex; align-items: center; justify-content: center; user-select: none; position: absolute; right: 6px; top: 8px; width: 40px; height: 40px; border: 0; border-radius: 10px; background: transparent; color: var(--ui-muted, #5f6b7a); font-size: 19px; cursor: pointer; }
.lg-eye:hover { color: var(--lg-accent); background: transparent; }

@supports (color: color-mix(in srgb, red 50%, blue)) { .lg-eye:hover { background: color-mix(in srgb, var(--lg-accent) 12%, transparent); } }
.lg-caps { display: none; margin: -12px 4px 14px; font-size: 13px; font-weight: 700; color: #ef8f00; }

.lg-btn { display: block; width: 100%; height: 50px; border: 1.5px solid var(--lg-accent); border-radius: 12px; background: var(--lg-accent); color: #fff; font: 700 17px Calibri, "Segoe UI", Arial, sans-serif; letter-spacing: .8px; text-transform: uppercase; cursor: pointer; transition: transform .12s, box-shadow .12s, background .12s, color .12s; }
.lg-btn:hover, .lg-btn:focus-visible { background: var(--ui-surface, #fff); color: var(--lg-accent); transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0,0,0,.30), 0 2px 4px rgba(0,0,0,.20); outline: none; }

@supports (color: color-mix(in srgb, red 50%, blue)) { .lg-btn:hover, .lg-btn:focus-visible { background: color-mix(in srgb, var(--lg-accent) 14%, var(--ui-surface, #fff)); } }
.lg-btn:active { transform: translateY(0); box-shadow: none; }
.lg-btn:disabled { opacity: .7; cursor: wait; }
.lg-foot { margin: 22px 0 0; text-align: center; font-size: 12px; color: var(--ui-muted, #5f6b7a); }

/* About */
.lg-about-page { --lg-accent: var(--ui-accent, #ff6a00); min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; padding: 40px 20px;
    background: linear-gradient(150deg, var(--lg-accent) 0%, var(--lg-accent) 100%); }


@supports (color: color-mix(in srgb, red 50%, blue)) { /* About */
.lg-about-page { background: linear-gradient(150deg, var(--lg-accent) 0%, color-mix(in srgb, var(--lg-accent) 38%, #0b0b0b) 100%); } }
.lg-about { width: 100%; max-width: 780px; background: var(--ui-surface, #fff); color: var(--ui-text, #1f2933); border-radius: 18px; box-shadow: 0 18px 50px rgba(0,0,0,.35); overflow: hidden; text-align: center; }
.lg-about-head { padding: 34px 30px 26px; border-bottom: 1px solid var(--ui-border, #d3dae3); border-top: 6px solid var(--lg-accent); }
.lg-about-head .lg-seal { width: 150px; height: 150px; margin-bottom: 18px; background: var(--ui-field, #f5f7fa); box-shadow: 0 6px 18px rgba(0,0,0,.18); }
.lg-about-head .lg-seal img { width: 100px; }
.lg-about-head h1 { margin: 0; font-family: Cambria, Georgia, serif; font-size: 27px; line-height: 1.25; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: var(--ui-text, #1f2933); }
.lg-info { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 14px; padding: 24px 26px 8px; text-align: left; }
.lg-info-card { display: flex; gap: 14px; align-items: flex-start; padding: 16px; border: 1px solid var(--ui-border, #d3dae3); border-radius: 12px; background: var(--ui-field, #f5f7fa); transition: transform .12s, box-shadow .12s, background .12s; }
.lg-info-card:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0,0,0,.25); background: var(--ui-surface, #fff); border-color: transparent; }

@supports (color: color-mix(in srgb, red 50%, blue)) { .lg-info-card:hover { background: color-mix(in srgb, var(--lg-accent) 12%, var(--ui-surface, #fff)); } }
.lg-ico { flex: 0 0 42px; height: 42px; display: flex; align-items: center; justify-content: center; border: 2px solid var(--lg-accent); border-radius: 12px; font-size: 20px; }
.lg-info-card small { display: block; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--ui-muted, #5f6b7a); }
.lg-info-card b, .lg-info-card a { display: block; margin-top: 2px; font-size: 16px; font-weight: 700; color: var(--ui-text, #1f2933); text-decoration: none; word-break: break-word; }
.lg-info-card a:hover { color: var(--lg-accent); }
.lg-about-foot { padding: 20px 26px 28px; }
.lg-about-foot .lg-btn { max-width: 320px; margin: 0 auto; }
.lg-credit { color: rgba(255,255,255,.85); font-size: 13px; text-align: center; }

@media (max-width: 900px) { .lg-page { grid-template-columns: 1fr; } .lg-hero { padding: 36px 24px; } .lg-society { font-size: 25px; } .lg-seal { width: 140px; height: 140px; } .lg-seal img { width: 96px; } .lg-panel { padding: 28px 16px 40px; } }

/* the older login stylesheet and the theme files style #btnLogin and h1 / h2; these win over them */
#btnLogin.lg-btn { padding: 0; width: 100%; font-size: 17px; border-radius: 12px; border: 1.5px solid var(--lg-accent); background: var(--lg-accent); color: #fff; transition: transform .12s, box-shadow .12s, background .12s, color .12s; }
#btnLogin.lg-btn:hover, #btnLogin.lg-btn:focus { border: 1.5px solid var(--lg-accent); background: var(--ui-surface, #fff); color: var(--lg-accent); }

@supports (color: color-mix(in srgb, red 50%, blue)) { #btnLogin.lg-btn:hover, #btnLogin.lg-btn:focus { background: color-mix(in srgb, var(--lg-accent) 14%, var(--ui-surface, #fff)); } }
.lg-society, .lg-card h2, .lg-about-head h1 { font-style: normal; }
.lg-card h2, .lg-about-head h1 { text-shadow: none; }
.lg-hero .lg-society { color: #fff; }

/* the left panel keeps its size: it is pinned to the window height, so messages appearing in the card (required fields, caps lock) can no longer stretch it */
.lg-page { min-height: 100vh; }
.lg-hero { position: sticky; top: 0; height: 100vh; min-height: 560px; box-sizing: border-box; align-self: start; }
.lg-field { margin-bottom: 6px; padding-bottom: 22px; }
.lg-err { pointer-events: none; position: absolute; left: 4px; bottom: 2px; margin: 0; }
.lg-caps { display: block; visibility: hidden; margin: 0 4px 10px; min-height: 18px; }
@media (max-width: 900px) { .lg-hero { position: relative; height: auto; min-height: 0; } }

/* Change password: strength meter, the four rules and the match line */
.pw-card { max-width: 460px; }
.pw-meter { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: -8px 0 10px; }
.pw-meter span { height: 6px; border-radius: 4px; background: var(--ui-border, #d3dae3); transition: background .2s; }
.pw-meter span.on.s1 { background: #c62828; } .pw-meter span.on.s2 { background: #ef8f00; } .pw-meter span.on.s3 { background: #c0ca33; } .pw-meter span.on.s4 { background: #2e7d32; }
.pw-rules { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 4px; font-size: 14px; color: var(--ui-muted, #5f6b7a); }
.pw-rules li::before { content: "\25CB"; display: inline-block; width: 22px; font-weight: 700; }
.pw-rules li.ok { color: #2e7d32; font-weight: 600; }
.pw-rules li.ok::before { content: "\2713"; }
.pw-match { min-height: 18px; margin: -10px 4px 14px; font-size: 13px; font-weight: 700; }
.pw-match.ok { color: #2e7d32; } .pw-match.bad { color: #c62828; }

/* the settings button of the sign in page (colour theme, menu style): top right, over the light half */
.lg-gear { position: fixed; top: 14px; right: 18px; z-index: 2000; } /* above the click-away overlay (1999) so the panel can be clicked */
.lg-gear .hdr-set { margin: 0; }
.lg-gear #UserSettingsPanel { right: 0; margin: 52px 0 0 0; }
@media (max-width: 900px) { .lg-gear { top: 8px; right: 10px; } }

/* Error page */
.er-wrap { --lg-accent: var(--ui-accent, #ff6a00); min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 28px 16px; box-sizing: border-box; }
.er-card { max-width: 560px; text-align: center; }
.er-icon { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin: 4px 0 8px; border-radius: 50%; background: var(--ui-surface, #fff); color: #c62828; }

@supports (color: color-mix(in srgb, red 50%, blue)) { .er-icon { background: color-mix(in srgb, #c62828 14%, var(--ui-surface, #fff)); } }
.er-code { margin: 0 0 6px; font-size: 13px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; color: var(--ui-muted, #5f6b7a); }
.er-code:empty { display: none; }
.er-message { margin: 0 0 14px; font-size: 20px; font-weight: 700; color: #c62828; word-break: break-word; }
.er-details { margin: 0 0 20px; text-align: left; border: 1px solid var(--ui-border, #d3dae3); border-radius: 12px; background: var(--ui-field, #f5f7fa); }
.er-details > summary { cursor: pointer; padding: 10px 14px; font-weight: 700; color: var(--ui-muted, #5f6b7a); }
.er-desc { display: block; max-height: 180px; overflow: auto; margin: 0; padding: 4px 14px 12px; font: 12px/1.45 Consolas, "Courier New", monospace; color: var(--ui-text, #1f2933); white-space: pre-wrap; word-break: break-word; }
.er-actions { display: grid; gap: 10px; }
.er-actions .lg-btn { margin: 0; }
.er-ghost, .er-ghost:visited { background: var(--ui-surface, #fff) !important; color: var(--lg-accent, var(--ui-accent, #ff6a00)) !important; }
.er-ghost:hover, .er-ghost:focus-visible { background: var(--ui-surface, #fff) !important; }

@supports (color: color-mix(in srgb, red 50%, blue)) { .er-ghost:hover, .er-ghost:focus-visible { background: color-mix(in srgb, var(--lg-accent, var(--ui-accent, #ff6a00)) 14%, var(--ui-surface, #fff)) !important; } }
