/* Külső lektori portál (docs/proofreader-portal.md). Csak --nexus-* tokenek és témafüggő Bootstrap-változók,
   így világos és sötét módban is olvasható (a témát a /app/js/theme.js állítja). */

.lk-body { display: block; background: var(--nexus-bg, var(--bs-body-bg)); color: var(--nexus-text-main, var(--bs-body-color)); min-height: 100vh; }

.lk-topbar { background: var(--bs-primary); color: #fff; position: sticky; top: 0; z-index: 1030; box-shadow: 0 2px 8px rgba(0, 0, 0, .15); }
.lk-topbar-inner { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .55rem 1rem; max-width: 1560px; margin: 0 auto; }
.lk-brand { color: #fff; text-decoration: none; font-weight: 700; display: inline-flex; gap: .5rem; align-items: center; }
.lk-brand:hover { color: #fff; opacity: .9; }
.lk-topbar-actions { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; justify-content: flex-end; }
.lk-topbar-btn { color: #fff; border: 1px solid rgba(255, 255, 255, .45); border-radius: 999px; padding: .2rem .7rem; }
.lk-topbar-btn:hover, .lk-topbar-btn:focus { color: #fff; background: rgba(255, 255, 255, .15); }
.lk-user { font-size: .85rem; opacity: .9; max-width: 14rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lk-insecure { background: var(--bs-warning-bg-subtle); color: var(--bs-warning-text-emphasis); text-align: center; font-size: .85rem; padding: .35rem 1rem; }

.lk-main { max-width: 1560px; margin: 0 auto; }

.lk-card { background: var(--nexus-card-bg, var(--bs-body-bg)); border: 1px solid var(--nexus-card-border, var(--bs-border-color)); border-radius: 1rem; padding: 1.25rem; box-shadow: var(--nexus-card-shadow, none); }
.lk-auth { max-width: 26rem; margin: 3rem auto; }
.lk-auth h1 { font-size: 1.35rem; font-weight: 700; }
.lk-muted { color: var(--nexus-text-muted, var(--bs-secondary-color)); }
.lk-pre { white-space: pre-wrap; word-break: break-word; }

.lk-page-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; align-items: flex-start; margin-bottom: 1rem; }
.lk-page-head h1 { font-size: 1.3rem; font-weight: 700; margin: 0; }

.lk-badge { display: inline-flex; align-items: center; gap: .3rem; border-radius: 999px; padding: .15rem .6rem; font-size: .75rem; font-weight: 600; white-space: nowrap; }
.lk-tone-primary { background: var(--bs-primary-bg-subtle); color: var(--bs-primary-text-emphasis); }
.lk-tone-success { background: var(--bs-success-bg-subtle); color: var(--bs-success-text-emphasis); }
.lk-tone-warning { background: var(--bs-warning-bg-subtle); color: var(--bs-warning-text-emphasis); }
.lk-tone-danger { background: var(--bs-danger-bg-subtle); color: var(--bs-danger-text-emphasis); }
.lk-tone-info { background: var(--bs-info-bg-subtle); color: var(--bs-info-text-emphasis); }
.lk-tone-secondary { background: var(--bs-secondary-bg); color: var(--bs-secondary-color); }

.lk-jobs { display: grid; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); gap: 1rem; }
.lk-job-card { display: block; text-decoration: none; color: inherit; transition: transform .1s ease, box-shadow .1s ease; }
.lk-job-card:hover, .lk-job-card:focus { transform: translateY(-2px); box-shadow: 0 .5rem 1.2rem rgba(0, 0, 0, .12); color: inherit; }
.lk-job-card.is-disabled { opacity: .7; }
.lk-progress { height: .45rem; border-radius: 999px; background: var(--bs-secondary-bg); overflow: hidden; }
.lk-progress > span { display: block; height: 100%; background: var(--bs-primary); }

.lk-toolbar { position: sticky; top: 3.2rem; z-index: 5; background: var(--nexus-bg, var(--bs-body-bg)); padding: .5rem 0; display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.lk-toolbar .form-control, .lk-toolbar .form-select { max-width: 18rem; border-radius: 999px; }
.lk-save { font-size: .85rem; margin-left: auto; }

.lk-lines { display: flex; flex-direction: column; gap: .6rem; }
.lk-line { display: grid; grid-template-columns: 3rem 9rem minmax(0, 1fr) minmax(0, 1fr) minmax(0, .8fr); gap: .75rem; align-items: start;
    background: var(--nexus-card-bg, var(--bs-body-bg)); border: 1px solid var(--nexus-card-border, var(--bs-border-color)); border-radius: .8rem; padding: .7rem .8rem;
    content-visibility: auto; contain-intrinsic-size: auto 7rem; }
.lk-line.is-modified { border-left: 4px solid var(--bs-warning); }
.lk-line.has-comment .lk-comment-col textarea { border-color: var(--bs-info); }
.lk-line.is-focused { box-shadow: 0 0 0 2px var(--bs-primary-border-subtle); }
.lk-seq { font-size: .8rem; color: var(--nexus-text-muted, var(--bs-secondary-color)); }
.lk-speaker { font-weight: 600; font-size: .85rem; word-break: break-word; }
.lk-time { font-family: var(--bs-font-monospace); font-size: .78rem; color: var(--nexus-text-muted, var(--bs-secondary-color)); }
.lk-label { font-size: .72rem; text-transform: uppercase; letter-spacing: .03em; color: var(--nexus-text-muted, var(--bs-secondary-color)); margin-bottom: .2rem; }
.lk-source { white-space: pre-wrap; word-break: break-word; }
.lk-line textarea { font-size: .95rem; resize: vertical; min-height: 3.2rem; }
.lk-meta { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; font-size: .75rem; margin-top: .25rem; }
.lk-mt { font-size: .8rem; color: var(--nexus-text-muted, var(--bs-secondary-color)); white-space: pre-wrap; word-break: break-word; }
.lk-link-btn { border: 0; background: none; padding: 0; color: var(--bs-link-color); font-size: .75rem; text-decoration: underline; }
.lk-state-error { color: var(--bs-danger-text-emphasis); }

@media (max-width: 991.98px) {
    .lk-line { grid-template-columns: 2.5rem minmax(0, 1fr); }
    .lk-line > .lk-source-col, .lk-line > .lk-text-col, .lk-line > .lk-comment-col { grid-column: 1 / -1; }
    .lk-toolbar { top: 3rem; }
}

/* ── Bejelentkező nézetek: az intranet bejelentkező oldalának (app/login.html) megjelenése ───────────
   A bal oldali márkapanel szándékosan mindkét témában sötét (mint az intraneten). */
.lk-auth-mode .lk-topbar, .lk-auth-mode .lk-insecure { display: none; }
.lk-auth-mode .lk-main { max-width: none; padding: 0 !important; }

.lk-login-shell { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); min-height: 100vh; }

.lk-login-brand { position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 2.5rem; padding: 3rem 3.5rem;
    overflow: hidden; color: #cbd5e1;
    background: radial-gradient(900px 500px at 8% 0%, rgba(37, 99, 235, 0.28), transparent 60%), linear-gradient(160deg, #0b1120 0%, #111a2e 55%, #17253f 100%); }
.lk-login-brand::before { content: ''; position: absolute; inset: 0; pointer-events: none;
    background-image: linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
    background-size: 44px 44px;
    -webkit-mask-image: radial-gradient(ellipse 80% 70% at 30% 35%, #000 25%, transparent 75%);
    mask-image: radial-gradient(ellipse 80% 70% at 30% 35%, #000 25%, transparent 75%); }
.lk-login-brand::after { content: ''; position: absolute; width: 520px; height: 520px; right: -180px; bottom: -220px; border-radius: 50%;
    background: radial-gradient(circle, rgba(56, 189, 248, 0.16), transparent 70%); pointer-events: none; }
.lk-login-brand > * { position: relative; z-index: 1; }
.lk-login-brand-top { display: flex; align-items: center; gap: .9rem; }
.lk-login-logo { width: 56px; height: 56px; border-radius: 1rem; box-shadow: 0 0 0 1px rgba(255, 255, 255, .12), 0 10px 30px rgba(0, 0, 0, .45); }
.lk-login-brand-name { color: #fff; font-size: 1.15rem; font-weight: 700; letter-spacing: .01em; line-height: 1.2; }
.lk-login-brand-name small { display: block; margin-top: .15rem; font-size: .72rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: #7d8db0; }
.lk-login-headline { max-width: 30rem; margin: 0 0 1rem; color: #fff; font-size: clamp(1.7rem, 2.6vw, 2.35rem); font-weight: 700; line-height: 1.2; letter-spacing: -.02em; }
.lk-login-lead { max-width: 30rem; margin: 0 0 2rem; font-size: 1rem; line-height: 1.6; color: #94a3b8; }
.lk-login-features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.5rem; max-width: 32rem; margin: 0; padding: 0; list-style: none; }
.lk-login-features li { display: flex; align-items: center; gap: .75rem; font-size: .9rem; font-weight: 500; color: #e2e8f0; }
.lk-login-feature-icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 38px; height: 38px; border-radius: .8rem;
    font-size: 1.05rem; color: #7cb2ff; background: rgba(59, 130, 246, .14); border: 1px solid rgba(96, 165, 250, .25); }
.lk-login-brand-foot { font-size: .78rem; color: #64748b; }

.lk-login-panel { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.5rem; padding: 4.5rem 1.5rem 2.5rem; }
.lk-login-tools { position: absolute; top: 1rem; right: 1rem; display: flex; align-items: center; gap: .5rem; }
.lk-login-tools nexus-theme-switch { width: 132px; }
.lk-login-lang { border-radius: 999px; font-weight: 600; padding: .25rem .8rem; }
.lk-login-form-wrap { width: 100%; max-width: 26rem; }
.lk-login-title { margin: 0 0 .35rem; font-size: 1.75rem; font-weight: 700; letter-spacing: -.02em; color: var(--nexus-text-main); }
.lk-login-subtitle { margin: 0 0 2rem; font-size: .95rem; color: var(--nexus-text-muted); }
.lk-login-input-group { position: relative; }
.lk-login-input-group .form-control { border-radius: .85rem; padding: .8rem 1rem .8rem 2.75rem; font-size: .95rem; border: 1px solid var(--nexus-input-border);
    background-color: var(--nexus-input-bg); color: var(--nexus-text-main); transition: border-color .15s ease, box-shadow .15s ease; }
.lk-login-input-group .form-control:focus { border-color: var(--nexus-accent-blue, #2563eb); box-shadow: 0 0 0 3px rgba(37, 99, 235, .15); }
.lk-login-input-group .form-control[readonly] { opacity: .8; }
.lk-login-input-icon { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--nexus-text-muted); font-size: 1.1rem; z-index: 4; pointer-events: none; transition: color .15s ease; }
.lk-login-input-group:focus-within .lk-login-input-icon { color: var(--nexus-accent-blue, #2563eb); }
.lk-login-password-toggle { position: absolute; right: .85rem; top: 50%; transform: translateY(-50%); color: var(--nexus-text-muted); background: none; border: none;
    padding: .25rem .5rem; font-size: 1.1rem; z-index: 4; cursor: pointer; border-radius: .5rem; line-height: 1; }
.lk-login-password-toggle:hover { color: var(--nexus-text-main); }
.lk-login-btn { border-radius: .85rem; padding: .8rem 1.5rem; font-size: 1rem; font-weight: 600; background-color: var(--nexus-blue-solid); border: none;
    box-shadow: 0 6px 18px rgba(37, 99, 235, .28); transition: all .2s ease; }
.lk-login-btn:hover:not(:disabled) { background-color: #1d4ed8; transform: translateY(-1px); box-shadow: 0 8px 22px rgba(37, 99, 235, .38); }
.lk-login-note { display: flex; align-items: flex-start; gap: .6rem; margin-top: 1.5rem; padding: .75rem .9rem; border-radius: .85rem; font-size: .8rem; line-height: 1.45;
    color: var(--nexus-text-muted); background: rgba(37, 99, 235, .06); border: 1px solid rgba(37, 99, 235, .14); }
.lk-login-note i { margin-top: .1rem; color: var(--nexus-accent-blue, #2563eb); }
.lk-login-note.is-warning { background: var(--bs-warning-bg-subtle); border-color: var(--bs-warning-border-subtle); color: var(--bs-warning-text-emphasis); }
.lk-login-note.is-warning i { color: inherit; }
.lk-login-links { margin-top: 1.25rem; text-align: center; font-size: .9rem; }
.lk-login-panel-foot { font-size: .75rem; color: var(--nexus-text-muted); }

@media (max-width: 991.98px) {
    .lk-login-shell { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; }
    .lk-login-brand { padding: 1.25rem 1.5rem; gap: 0; }
    .lk-login-brand-body, .lk-login-brand-foot { display: none; }
    .lk-login-logo { width: 44px; height: 44px; border-radius: .8rem; }
    .lk-login-panel { justify-content: flex-start; padding-top: 4rem; }
}
@media (prefers-reduced-motion: reduce) {
    .lk-login-btn, .lk-login-input-group .form-control, .lk-login-input-icon { transition: none; }
}
