/* Аналитика ОЕИ — визуальная оболочка входа. Серверные обработчики остаются прежними. */
body.authentication-bg, body.aoei-profile {
    --aoei-paper:#f4f5ef; --aoei-ink:#172a2b; --aoei-panel:#183d3b;
    --aoei-teal:#13746c; --aoei-lime:#d4ee9b; --aoei-muted:#657571; --aoei-line:#d9dfd7;
    color:var(--aoei-ink); background:var(--aoei-paper)!important;
    font-family:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    font-size:15px; line-height:1.6; -webkit-font-smoothing:antialiased;
}
body.authentication-bg { min-height:100vh; padding:0!important; }
.authentication-bg *, .authentication-bg *::before, .authentication-bg *::after { box-sizing:border-box; }
.authentication-bg a { color:var(--aoei-teal); }
.authentication-bg a:focus-visible, .authentication-bg button:focus-visible, .authentication-bg input:focus-visible { outline:3px solid #568e83; outline-offset:4px; }
.authentication-bg .auth-fluid {
    display:grid!important; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:stretch;
    width:100%; min-height:100vh; min-height:100svh; margin:0; padding:16px;
    background:none!important; gap:0; isolation:isolate;
}
.authentication-bg .auth-fluid-form-box {
    position:relative; display:flex; justify-content:center; width:auto!important;
    min-width:0; max-width:none!important; min-height:0!important; padding:0!important;
    background:transparent!important; border:0; box-shadow:none; border-radius:0;
}
.authentication-bg .auth-fluid-form-box > .d-flex { width:100%; height:auto!important; }
.authentication-bg .auth-fluid-form-box .card-body {
    width:100%; min-width:0; max-width:620px; margin:auto; padding:52px clamp(28px,4.6vw,76px);
}
.authentication-bg .auth-fluid-right { display:none!important; }
.authentication-bg .auth-brand { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:0 0 60px!important; padding:0; position:static; text-align:left!important; }
.authentication-bg .aoei-auth-logo { display:block; flex-shrink:0; }
.authentication-bg .aoei-auth-logo img { display:block; width:180px; height:auto; max-width:100%; }
.authentication-bg .aoei-auth-back { color:var(--aoei-muted); font-size:11px; font-weight:600; white-space:nowrap; }
.authentication-bg .aoei-auth-back span { font-size:16px; display:block; line-height:1.2; }
.authentication-bg .auth-fluid-form-box h4.mt-0,
.authentication-bg .auth-fluid-form-box h4.text-dark-50,
.authentication-bg .auth-fluid-form-box h3.text-dark-50 {
    color:var(--aoei-ink)!important; font-size:clamp(30px,3vw,44px); line-height:1.13;
    font-weight:650!important; letter-spacing:-1.6px; margin:0 0 18px!important;
}
.authentication-bg .auth-fluid-form-box .text-muted { color:var(--aoei-muted)!important; }
.authentication-bg .auth-fluid-form-box p.mb-4 { font-size:14px; line-height:1.75; margin-bottom:28px!important; }
.authentication-bg .auth-fluid-form-box .mb-2 { margin-bottom:20px!important; }
.authentication-bg .auth-fluid-form-box .form-label { font-size:12px; font-weight:650; color:var(--aoei-ink); margin-bottom:8px; }
.authentication-bg .auth-fluid-form-box .form-control {
    color:var(--aoei-ink)!important; background:#fff!important; border:1px solid var(--aoei-line);
    border-radius:12px; padding:14px 16px; min-height:51px; font-size:15px; line-height:1.4;
    box-shadow:none; transition:border-color .16s,box-shadow .16s;
}
.authentication-bg .auth-fluid-form-box .form-control::placeholder { color:#87938e; opacity:1; }
.authentication-bg .auth-fluid-form-box .form-control:focus { border-color:var(--aoei-teal); box-shadow:0 0 0 3px rgba(19,116,108,.1); }
.authentication-bg .auth-fluid-form-box .input-group-text { background:#e8ece4; border-color:var(--aoei-line); color:var(--aoei-muted); border-radius:12px 0 0 12px; padding:12px; font-size:12px; }
.authentication-bg .auth-fluid-form-box .input-group > .form-control { border-top-left-radius:0; border-bottom-left-radius:0; }
.authentication-bg .btn {
    min-height:50px; border-radius:12px; padding:13px 22px; font-size:14px; font-weight:650;
    line-height:1.5; box-shadow:none!important; transition:background-color .16s,border-color .16s;
}
.authentication-bg .btn-primary, .authentication-bg .btn-success {
    background:var(--aoei-panel); border-color:var(--aoei-panel); color:#fff;
}
.authentication-bg .btn-primary:hover, .authentication-bg .btn-primary:focus,
.authentication-bg .btn-success:hover, .authentication-bg .btn-success:focus {
    background:var(--aoei-teal); border-color:var(--aoei-teal); color:#fff;
}
.authentication-bg form[name="form_login_no_register"] { margin-top:12px; }
.authentication-bg form[name="form_login_no_register"] .btn-success { background:transparent; border-color:var(--aoei-line); color:var(--aoei-ink); }
.authentication-bg form[name="form_login_no_register"] .btn-success:hover { background:#e6eadf; border-color:#bccbbe; }
.authentication-bg .auth-fluid-form-box .btn .mdi { display:none; }
.authentication-bg .auth-fluid-form-box .custom-checkbox { font-size:12px; line-height:1.6; text-align:left; margin-top:7px; }
.authentication-bg .auth-fluid-form-box input[type="checkbox"] { accent-color:var(--aoei-teal); width:17px; height:17px; margin-right:6px; vertical-align:middle; }
.authentication-bg .auth-fluid-form-box .custom-control-label { display:inline; }
.authentication-bg .auth-fluid-form-box .custom-control-label a { text-decoration:underline; text-underline-offset:3px; }
.authentication-bg .auth-fluid-form-box .footer-alt {
    position:static; width:auto; padding:0; margin:28px 0 0; left:auto; right:auto; bottom:auto; text-align:left;
}
.authentication-bg .auth-fluid-form-box .footer-alt > p { font-size:13px; margin-bottom:24px; }
.authentication-bg .auth-fluid-form-box .footer-alt > p a { color:var(--aoei-teal)!important; }
.oei-auth-owner { margin-top:28px; padding-top:20px; border-top:1px solid #d9dfd7; font-size:11px; line-height:1.7; text-align:left; color:#657571!important; }
.oei-auth-owner a { color:inherit; }
.aoei-auth-legal { display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:8px; }
.authentication-bg .logout-icon { width:110px; margin:28px auto!important; }
.authentication-bg .logout-icon svg [stroke] { stroke:var(--aoei-teal); }
.authentication-bg .logout-icon .spin { animation:none; }
.authentication-bg .modal-content { border-radius:20px; border:1px solid var(--aoei-line); box-shadow:0 24px 90px #183d3b26; }
.authentication-bg .modal-content.bg-danger { background:#9a3731!important; color:#fff; }
.authentication-bg .modal .btn-light { background:#fff; color:var(--aoei-ink); }
.authentication-bg .auth-fluid-form-box .w-75 { width:100%!important; }
/* The editorial panel is decorative: its graph contains no fabricated metrics. */
.aoei-auth-panel {
    display:flex; flex-direction:column; justify-content:space-between; min-width:0;
    min-height:720px; border-radius:24px; color:#f4f5ef; background:#183d3b;
    padding:36px clamp(28px,4vw,62px) 32px; overflow:hidden; position:relative;
}
.aoei-auth-panel-top { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.aoei-auth-label { display:flex; align-items:center; gap:10px; font-size:11px; letter-spacing:.02em; }
.aoei-auth-label i { width:7px; height:7px; border-radius:50%; background:#d4ee9b; }
.aoei-auth-index { font-size:10px; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; color:#a2bdb4; letter-spacing:.09em; }
.aoei-auth-story { position:relative; z-index:1; padding-top:66px; }
.aoei-auth-kicker { margin:0 0 22px; color:#a2bdb4; font-size:10px; letter-spacing:.16em; text-transform:uppercase; }
.aoei-auth-story h2 { margin:0 0 26px; color:inherit; font-size:clamp(38px,4.1vw,66px); font-weight:500; line-height:1.06; letter-spacing:-2.7px; }
.aoei-auth-story h2 em { color:#d4ee9b; font-style:normal; }
.aoei-auth-story > p:last-child { max-width:370px; color:#bed0c9; font-size:14px; line-height:1.8; margin:0; }
.aoei-auth-map { position:relative; margin:28px -18px 30px; color:#bed0c9; }
.aoei-auth-map svg { display:block; width:100%; height:auto; max-height:244px; }
.aoei-auth-map-label { display:flex; justify-content:space-between; padding:10px 18px 0; font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:#93b1a7; }
.aoei-auth-panel-links { display:grid; grid-template-columns:1fr 1fr; gap:24px; position:relative; z-index:1; margin-top:auto; }
.aoei-auth-panel-links a { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:18px 0 0; border-top:1px solid #45635a; color:#f4f5ef; font-size:13px; line-height:1.5; text-decoration:none; }
.aoei-auth-panel-links a:hover { color:#d4ee9b; }
.aoei-auth-panel-links small { display:block; margin-bottom:5px; color:#93b1a7; font-size:9px; letter-spacing:.06em; }
.aoei-auth-panel-links b { font-size:22px; color:#d4ee9b; font-weight:400; }
/* Profile keeps the existing dashboard/includes and form contracts. */
.aoei-profile .content-page { background:var(--aoei-paper); }
.aoei-profile .card { border:1px solid var(--aoei-line); border-radius:20px; box-shadow:none; background:#fff; }
.aoei-profile .card-body { padding:26px; }
.aoei-profile h4.page-title { font-size:28px; font-weight:600; letter-spacing:-.8px; color:var(--aoei-ink); padding:20px 0; }
.aoei-profile h4, .aoei-profile h5, .aoei-profile .form-label { color:var(--aoei-ink); }
.aoei-profile .form-control { border-radius:10px; min-height:46px; border:1px solid var(--aoei-line); color:var(--aoei-ink); background:var(--aoei-paper); }
.aoei-profile .btn { border-radius:10px; box-shadow:none; padding:10px 18px; }
.aoei-profile .btn-primary, .aoei-profile .btn-success { background:var(--aoei-panel); border-color:var(--aoei-panel); color:#fff; }
.aoei-profile .nav-pills .nav-link.active { background:var(--aoei-panel); border-radius:10px; color:#fff; }
.aoei-profile .table { color:var(--aoei-ink); }
.aoei-profile .table thead { background:var(--aoei-paper); }
.aoei-profile .modal-content { border-radius:20px; }
.aoei-profile-nav { display:flex; flex-wrap:wrap; align-items:center; gap:10px 30px; padding:16px 26px; color:#f4f5ef; background:#183d3b; }
.aoei-profile-nav a { color:#d4ee9b; font-size:12px; }
.aoei-profile-nav .aoei-profile-home { color:#f4f5ef; margin-right:auto; font-weight:650; font-size:15px; }
@media (min-width:1600px) { .authentication-bg .auth-fluid { padding:24px; } .aoei-auth-panel { padding:48px 80px; } .aoei-auth-story h2 { max-width:640px; } .aoei-auth-map { max-width:650px; } }
@media (max-width:1100px) {
    .authentication-bg .auth-fluid { grid-template-columns:minmax(0,.95fr) minmax(0,1fr); padding:12px; }
    .authentication-bg .auth-fluid-form-box .card-body { padding:40px 30px; }
    .authentication-bg .auth-brand { margin-bottom:40px!important; }
    .authentication-bg .aoei-auth-logo img { width:160px; }
    .aoei-auth-panel { padding:30px; border-radius:20px; }
    .aoei-auth-story h2 { font-size:44px; letter-spacing:-1.8px; }
    .aoei-auth-index { display:none; }
}
@media (max-width:800px) {
    .authentication-bg .auth-fluid { display:flex!important; flex-direction:column; padding:0; }
    .authentication-bg .auth-fluid-form-box { order:0; }
    .authentication-bg .auth-fluid-form-box .card-body { max-width:550px; padding:30px 28px 38px; }
    .authentication-bg .auth-brand { margin-bottom:42px!important; }
    .authentication-bg .aoei-auth-back { font-size:11px; }
    .authentication-bg .aoei-auth-logo img { width:172px; }
    .authentication-bg .auth-fluid-form-box h4.mt-0, .authentication-bg .auth-fluid-form-box h4.text-dark-50 { font-size:36px; letter-spacing:-1.2px; }
    .aoei-auth-panel { order:1; min-height:0; border-radius:22px; padding:28px; margin:0 14px 14px; }
    .aoei-auth-story { padding-top:30px; }
    .aoei-auth-kicker, .aoei-auth-map { display:none; }
    .aoei-auth-story h2 { font-size:36px; letter-spacing:-1.5px; margin-bottom:18px; }
    .aoei-auth-story > p:last-child { max-width:460px; font-size:13px; }
    .aoei-auth-panel-links { margin-top:26px; }
}
@media (max-width:380px) {
    .authentication-bg .auth-fluid-form-box .card-body { padding:26px 20px 32px; }
    .authentication-bg .aoei-auth-logo img { width:154px; }
    .aoei-auth-panel { padding:24px; }
    .aoei-auth-panel-links { gap:16px; }
    .aoei-auth-panel-links a { font-size:12px; }
}
@media (prefers-reduced-motion:reduce) { .authentication-bg *, .authentication-bg *::before, .authentication-bg *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
.authentication-bg .aoei-form-kicker { color:var(--aoei-muted); font-size:10px; letter-spacing:.15em; line-height:1.4; text-transform:uppercase; margin:0 0 14px; }
.authentication-bg .aoei-auth-title { color:var(--aoei-ink); font-size:clamp(32px,3vw,44px); line-height:1.13; font-weight:650; letter-spacing:-1.6px; margin:0 0 18px; }
.authentication-bg .aoei-auth-feedback { padding:16px 18px; margin:0 0 20px; border:1px solid #acc7b0; border-radius:12px; background:#e9f0df; color:#214b35; font-size:13px; line-height:1.65; }
.authentication-bg .aoei-auth-feedback-error { color:#8c302b; background:#faf0ec; border-color:#e4c9be; }
.authentication-bg form[name="register_form"] { display:grid; grid-template-columns:1fr 1fr; column-gap:14px; }
.authentication-bg form[name="register_form"] > div { grid-column:1 / -1; }
.authentication-bg form[name="register_form"] > div:nth-of-type(1),
.authentication-bg form[name="register_form"] > div:nth-of-type(2) { grid-column:auto; }
@media (max-width:460px) { .authentication-bg form[name="register_form"] { display:block; } }

.aoei-auth-skip { position:absolute; left:24px; top:12px; transform:translateY(-150%); z-index:4; padding:10px 16px; border-radius:8px; background:#d4ee9b; color:#172a2b!important; font-size:13px; font-weight:600; }
.aoei-auth-skip:focus { transform:translateY(0); }
.authentication-bg .auth-fluid-form-box:focus { outline:none; }
