:root{
    --cz-yellow:#fff200;
    --cz-yellow-hover:#f2e500;
    --cz-yellow-soft:#fffde6;
    --cz-graphite:#4f565b;
    --cz-graphite-dark:#343a3e;
    --cz-text:#20272b;
    --cz-muted:#697278;
    --cz-bg:#f5f6f7;
    --cz-card:#ffffff;
    --cz-border:#e1e5e8;
    --cz-border-strong:#cfd5d9;
    --cz-link:#1769aa;
    --cz-success:#177245;
    --cz-success-bg:#eaf7f0;
    --cz-danger:#b42d3d;
    --cz-danger-bg:#fff0f2;
    --cz-warning:#865c00;
    --cz-warning-bg:#fff8dc;
    --cz-shadow:0 8px 28px rgba(35,42,47,.07);
    --cz-shadow-strong:0 24px 70px rgba(35,42,47,.20);
    --cz-radius:12px;
}

*{box-sizing:border-box}
html{background:var(--cz-bg)}
body{
    margin:0;
    min-height:100vh;
    background:var(--cz-bg);
    color:var(--cz-text);
    font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
    -webkit-font-smoothing:antialiased;
}
[hidden]{display:none!important}
a{color:var(--cz-link);text-decoration:none}
a:hover{text-decoration:underline}

.app-topbar{
    position:sticky;
    top:0;
    z-index:100;
    background:var(--cz-graphite);
    color:#fff;
    box-shadow:0 1px 0 rgba(0,0,0,.12);
}
.topbar-inner{
    max-width:1840px;
    min-height:62px;
    margin:0 auto;
    padding:0 24px;
    display:flex;
    align-items:center;
    gap:26px;
}
.brand-block{
    min-height:62px;
    display:flex;
    align-items:center;
    gap:10px;
    color:#fff;
    font-weight:750;
    letter-spacing:.02em;
    text-decoration:none!important;
    white-space:nowrap;
}
.brand-mark{
    width:34px;
    height:34px;
    border-radius:8px;
    display:grid;
    place-items:center;
    background:var(--cz-yellow);
    color:var(--cz-graphite-dark);
    font-weight:900;
    font-size:18px;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);
}

.brand-logo-shell{
    width:132px;
    height:42px;
    flex:0 0 132px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:5px 8px;
    border-radius:8px;
    background:#fff;
    overflow:hidden;
}
.brand-logo{
    display:block;
    width:auto;
    max-width:116px;
    height:30px;
    object-fit:contain;
}
.login-logo-shell{
    min-width:164px;
    height:52px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:6px 10px;
    border:1px solid var(--cz-border);
    border-radius:10px;
    background:#fff;
}
.login-logo{display:block;width:auto;max-width:150px;height:38px;object-fit:contain}
.brand-copy{display:flex;flex-direction:column;line-height:1.05}
.brand-copy small{
    margin-top:4px;
    color:#d8dcdf;
    font-size:10px;
    font-weight:500;
    letter-spacing:.04em;
}
.top-nav{
    display:flex;
    align-items:stretch;
    min-height:62px;
    gap:2px;
    flex-wrap:wrap;
}
.top-nav a{
    position:relative;
    min-height:62px;
    display:flex;
    align-items:center;
    padding:0 14px;
    color:#f4f5f6;
    font-size:14px;
    text-decoration:none;
    transition:background-color .14s ease,color .14s ease;
}
.top-nav a:hover{background:rgba(255,255,255,.08);text-decoration:none}
.top-nav a.active{color:#fff;background:rgba(0,0,0,.12)}
.top-nav a.active::after{
    content:"";
    position:absolute;
    left:14px;
    right:14px;
    bottom:0;
    height:4px;
    border-radius:3px 3px 0 0;
    background:var(--cz-yellow);
}

.app-main{max-width:1840px;margin:0 auto;padding:28px 24px 44px}
.app-main.narrow{max-width:1080px}
.app-main.login-shell{max-width:620px;padding-top:8vh}
.page-heading{margin:0 0 20px}
.page-heading h1{margin:0 0 6px;font-size:29px;line-height:1.22;letter-spacing:-.02em}
.page-heading p{margin:0;color:var(--cz-muted)}
h1,h2,h3{color:var(--cz-text)}
h2{font-size:22px;line-height:1.3;margin:0 0 14px}
h3{font-size:19px;line-height:1.35}

.panel{
    margin:18px 0;
    padding:24px;
    background:var(--cz-card);
    border:1px solid var(--cz-border);
    border-radius:var(--cz-radius);
    box-shadow:0 1px 2px rgba(35,42,47,.025);
}
.panel-accent{border-top:4px solid var(--cz-yellow)}

label{display:block;font-weight:600;color:#343b40}
input,select,textarea{
    border:1px solid var(--cz-border-strong);
    border-radius:8px;
    background:#fff;
    color:var(--cz-text);
    font:inherit;
    transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease;
}
input:focus,select:focus,textarea:focus{
    outline:none;
    border-color:#b9ad00;
    box-shadow:0 0 0 3px rgba(255,242,0,.25);
}
input,select{padding:11px 12px}

button,.button{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:42px;
    padding:10px 18px;
    border:1px solid #e3d800;
    border-radius:8px;
    background:var(--cz-yellow);
    color:#2f3437;
    font:inherit;
    font-weight:700;
    cursor:pointer;
    text-decoration:none;
    box-shadow:0 1px 1px rgba(0,0,0,.04);
    transition:transform .12s ease,background-color .12s ease,border-color .12s ease,box-shadow .12s ease;
}
button:hover,.button:hover{
    background:var(--cz-yellow-hover);
    border-color:#d9ce00;
    text-decoration:none;
    box-shadow:0 3px 10px rgba(55,55,20,.10);
}
button:active,.button:active{transform:translateY(1px)}
button:focus-visible,.button:focus-visible{
    outline:3px solid rgba(255,242,0,.45);
    outline-offset:2px;
}
button:disabled,.button.disabled{opacity:.52;cursor:default;transform:none;box-shadow:none}
button.secondary,.button.secondary{
    border-color:var(--cz-border-strong);
    background:#fff;
    color:#3e464b;
}
button.secondary:hover,.button.secondary:hover{background:#f6f7f8;border-color:#bfc6ca}
button.dark,.button.dark{background:var(--cz-graphite);border-color:var(--cz-graphite);color:#fff}
button.dark:hover,.button.dark:hover{background:var(--cz-graphite-dark)}
button.is-loading::before,.button.is-loading::before{
    content:"";
    width:15px;
    height:15px;
    flex:0 0 15px;
    border:2px solid currentColor;
    border-right-color:transparent;
    border-radius:50%;
    animation:cz-spin .65s linear infinite;
}

.muted{color:var(--cz-muted)}
.hint{display:block;margin-top:5px;color:var(--cz-muted);font-size:13px;font-weight:400}
.notice{
    margin:14px 0 0;
    padding:13px 15px;
    border:1px solid #d7e3da;
    border-radius:8px;
    background:var(--cz-success-bg);
    color:#27533a;
    white-space:pre-wrap;
    animation:cz-notice-in .18s ease-out;
}
.notice.error,.error.notice{border-color:#efc9cf;background:var(--cz-danger-bg);color:var(--cz-danger)}
.notice.warning,.warning{border-color:#ead8a3;background:var(--cz-warning-bg);color:var(--cz-warning)}
.error{color:var(--cz-danger)}

.table-wrap{overflow:auto;overscroll-behavior:contain}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{padding:12px 11px;text-align:left;vertical-align:top;border-bottom:1px solid var(--cz-border)}
th{background:#f0f2f3;color:#30373b;font-size:13px;font-weight:750;white-space:nowrap}
tbody tr:hover{background:#fffef1}
.badge{
    display:inline-flex;
    align-items:center;
    padding:5px 10px;
    border-radius:999px;
    background:#f1f3f4;
    color:#4d555a;
    font-size:13px;
    font-weight:700;
    white-space:nowrap;
}
.badge.primary{background:var(--cz-yellow-soft);color:#5c5600;border:1px solid #e9df42}
.badge.success{background:var(--cz-success-bg);color:var(--cz-success);border:1px solid #b9ddc9}
.badge.warning{background:var(--cz-warning-bg);color:var(--cz-warning);border:1px solid #ead8a3}
.badge.danger{background:var(--cz-danger-bg);color:var(--cz-danger);border:1px solid #efbbc3}

button.danger,.button.danger{
    border-color:#e1b7bd;
    background:#fff;
    color:var(--cz-danger);
}
button.danger:hover,.button.danger:hover{
    border-color:#d68d98;
    background:var(--cz-danger-bg);
}
.organization-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.organization-actions form{margin:0}
.actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}
/* v31: действия импорта */
.import-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.import-row>.muted{flex:1 1 420px}

.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}
.settings-grid label{margin:14px 0}
.settings-grid input{display:block;width:100%;margin-top:6px}

.info-strip{
    display:flex;
    gap:10px 18px;
    flex-wrap:wrap;
    padding:12px 15px;
    border-radius:9px;
    background:#fffde6;
    border:1px solid #efe68b;
    color:#555122;
}

/* Dialogs use GPU-friendly opacity/transform animations only. */
.app-dialog{
    position:fixed;
    inset:0;
    z-index:1100;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    background:rgba(31,37,41,.48);
    animation:cz-backdrop-in .15s ease-out;
}
.app-dialog-card{
    width:min(590px,100%);
    overflow:hidden;
    border:1px solid rgba(0,0,0,.08);
    border-radius:14px;
    background:#fff;
    box-shadow:var(--cz-shadow-strong);
    animation:cz-dialog-in .18s cubic-bezier(.2,.8,.2,1);
}
.app-dialog-accent{height:6px;background:var(--cz-yellow)}
.app-dialog-card.is-error .app-dialog-accent{background:#db4152}
.app-dialog-body{padding:24px 24px 20px}
.app-dialog-title-row{display:flex;align-items:flex-start;gap:13px}
.app-dialog-icon{
    width:36px;height:36px;flex:0 0 36px;border-radius:10px;
    display:grid;place-items:center;background:var(--cz-yellow);color:#353a3d;
    font-weight:900;font-size:18px;
}
.app-dialog-card.is-error .app-dialog-icon{background:#ffe5e9;color:#a52235}
.app-dialog-card h3{margin:2px 0 6px}
.app-dialog-card p{
    margin:0;
    color:#4f585e;
    font-size:16px;
    line-height:1.7;
}
#feedback-dialog-text{
    white-space:pre-line;
    letter-spacing:.005em;
}
.app-dialog-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    justify-content:flex-end;
    padding:0 24px 24px;
}
.app-dialog-actions button{min-width:132px}

/* Progress */
.operation-progress{
    position:relative;
    overflow:hidden;
    margin-top:14px;
    padding:15px 16px;
    border:1px solid var(--cz-border);
    border-left:4px solid var(--cz-yellow);
    border-radius:9px;
    background:#fafbfb;
    animation:cz-notice-in .18s ease-out;
}
.operation-progress-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:8px}
.operation-progress progress{
    display:block;
    width:100%;
    height:10px;
    margin:0 0 8px;
    overflow:hidden;
    border:0;
    border-radius:999px;
    background:#e7eaec;
    appearance:none;
}
.operation-progress progress::-webkit-progress-bar{background:#e7eaec;border-radius:999px}
.operation-progress progress::-webkit-progress-value{background:var(--cz-yellow);border-radius:999px;transition:width .22s ease}
.operation-progress progress::-moz-progress-bar{background:var(--cz-yellow);border-radius:999px}
.operation-progress progress:not([value]){background:linear-gradient(90deg,#e7eaec 0,#fff5a6 45%,#e7eaec 90%);background-size:220% 100%;animation:cz-progress-slide 1.1s linear infinite}

@keyframes cz-spin{to{transform:rotate(360deg)}}
@keyframes cz-dialog-in{from{opacity:0;transform:translateY(9px) scale(.985)}to{opacity:1;transform:none}}
@keyframes cz-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes cz-notice-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@keyframes cz-progress-slide{to{background-position:-220% 0}}
@keyframes cz-card-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

@media(max-width:760px){
    .topbar-inner{padding:0 14px;gap:12px;align-items:flex-start;flex-direction:column;padding-top:9px}
    .brand-block{min-height:44px}
    .brand-logo-shell{width:116px;flex-basis:116px;height:38px}
    .brand-logo{max-width:102px;height:26px}
    .top-nav{min-height:auto;width:100%;overflow:auto;flex-wrap:nowrap}
    .top-nav a{min-height:44px;padding:0 11px}
    .app-main{padding:20px 14px 34px}
    .settings-grid{grid-template-columns:1fr}
    .panel{padding:18px}
    .page-heading h1{font-size:25px}
    .app-dialog{padding:14px}
    .app-dialog-body{padding:20px 18px 16px}
    .app-dialog-actions{padding:0 18px 18px}
    .app-dialog-actions button{flex:1 1 140px}
}

@media(prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

/* v15: выход отделён от навигационных вкладок и всегда находится справа. */
.topbar-account{
    margin-left:auto;
    padding-left:18px;
    border-left:1px solid rgba(255,255,255,.18);
    display:flex;
    align-items:center;
}
.topbar-logout-form{margin:0}
button.topbar-logout{
    min-height:36px;
    padding:7px 14px;
    border:1px solid rgba(255,255,255,.34);
    border-radius:7px;
    background:transparent;
    color:#fff;
    box-shadow:none;
    font-weight:650;
}
button.topbar-logout:hover{
    background:rgba(255,255,255,.10);
    border-color:rgba(255,255,255,.60);
    box-shadow:none;
}

/* Читаемый текст модальных уведомлений: каждое сообщение отдельным абзацем. */
.dialog-copy{
    display:grid;
    gap:9px;
    margin-top:3px;
}
.app-dialog-card .dialog-copy p{
    margin:0;
    color:#4b555b;
    font-size:17px;
    line-height:1.55;
}
.app-dialog-card .dialog-copy p:first-child{
    color:#2c3439;
    font-weight:650;
}

@media(max-width:920px){
    .topbar-inner{gap:14px}
    .brand-copy{display:none}
    .topbar-account{padding-left:10px}
}

@media(max-width:760px){
    .topbar-inner{position:relative;padding-right:92px}
    .topbar-account{
        position:absolute;
        right:14px;
        top:10px;
        margin:0;
        padding:0;
        border-left:0;
    }
    button.topbar-logout{min-height:34px;padding:6px 11px}
    .app-dialog-card .dialog-copy p{font-size:16px}
}

/* v17: модальный прогресс проверки Честного знака. */
.check-progress-card{width:min(640px,100%)}
.check-progress-copy{min-width:0;flex:1}
.check-progress-icon{
    position:relative;
    overflow:hidden;
    background:#fff8a8;
}
.check-progress-icon::before{
    content:"";
    width:17px;
    height:17px;
    border:3px solid rgba(45,51,55,.20);
    border-top-color:#2d3337;
    border-radius:50%;
    animation:cz-spin .78s linear infinite;
}
.check-progress-card.is-complete .check-progress-icon{
    background:#e7f5ec;
    color:#14643b;
}
.check-progress-card.is-complete .check-progress-icon::before{display:none}
.check-progress-meter{
    margin-top:22px;
    padding:15px 16px 14px;
    border:1px solid var(--cz-border);
    border-radius:10px;
    background:#fafbfb;
}
.check-progress-meter-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:10px;
    font-size:14px;
}
#check-progress-stage{font-weight:750;color:#343c41}
#check-progress-value{font-variant-numeric:tabular-nums;color:#525c62}
#check-progress-bar{
    display:block;
    width:100%;
    height:11px;
    overflow:hidden;
    border:0;
    border-radius:999px;
    background:#e7eaec;
    appearance:none;
}
#check-progress-bar::-webkit-progress-bar{background:#e7eaec;border-radius:999px}
#check-progress-bar::-webkit-progress-value{background:var(--cz-yellow);border-radius:999px;transition:width .2s ease}
#check-progress-bar::-moz-progress-bar{background:var(--cz-yellow);border-radius:999px}
#check-progress-bar:not([value]){
    background:linear-gradient(90deg,#e7eaec 0,#fff4a0 48%,#e7eaec 100%);
    background-size:220% 100%;
    animation:cz-progress-slide 1.05s linear infinite;
}
.check-progress-card.is-complete #check-progress-bar::-webkit-progress-value{background:#43a86c}
.check-progress-card.is-complete #check-progress-bar::-moz-progress-bar{background:#43a86c}
.check-progress-hint{
    margin-top:11px!important;
    color:#768087!important;
    font-size:13px!important;
    line-height:1.45!important;
}

/* v22: фоновые выгрузки */
.exports-table-wrap[hidden]{display:none!important}
#exports-empty[hidden]{display:none!important}
#exports-empty{margin:16px 0 0}
.exports-table-wrap{margin-top:16px;border:1px solid var(--cz-border);border-radius:9px}
.compact-button{padding:8px 12px;min-height:36px;white-space:nowrap}
.export-delete-button{color:var(--cz-danger);border-color:#e2b9bf;background:#fff}
.export-delete-button:hover{background:var(--cz-danger-bg);border-color:#d896a0}
.export-cancel-button{color:#9a5b00;border-color:#e6c27a;background:#fffaf0}
.export-cancel-button:hover:not(:disabled){background:#fff3d6;border-color:#d7a84c}
.export-cancel-button:disabled{opacity:.72;cursor:wait}

/* v24: страница входа с живым случайным ambient-фоном. */
.login-page{
    min-height:100vh;
    overflow-x:hidden;
    background:
        radial-gradient(circle at 18% 16%, rgba(255,242,0,.18), transparent 28%),
        radial-gradient(circle at 84% 78%, rgba(125,133,139,.22), transparent 33%),
        linear-gradient(125deg,#32393d 0%,#4b5358 44%,#353c40 100%);
    background-size:140% 140%;
    animation:login-gradient-shift 14s ease-in-out infinite alternate;
}
.login-page::before{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    opacity:.26;
    background-image:radial-gradient(rgba(255,255,255,.22) .7px, transparent .7px);
    background-size:26px 26px;
    mask-image:linear-gradient(to bottom,rgba(0,0,0,.85),rgba(0,0,0,.15));
}
.login-stage{
    position:relative;
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:42px 22px 60px;
    isolation:isolate;
}
.login-ambient{
    position:fixed;
    inset:0;
    overflow:hidden;
    pointer-events:none;
    z-index:-1;
}
.login-orb{
    position:absolute;
    display:block;
    left:0;
    top:0;
    pointer-events:none;
    will-change:transform;
}
.login-orb-shape{
    position:absolute;
    inset:0;
    display:block;
    border-radius:50%;
    background:var(--orb-fill,rgba(255,242,0,.65));
    border:1px solid transparent;
    filter:blur(var(--orb-blur,0));
    transform-origin:50% 50%;
    will-change:transform;
}
.login-orb.is-outline .login-orb-shape{
    background:rgba(255,255,255,.015);
    border:2px solid var(--orb-border,rgba(255,242,0,.66));
}
.login-card-modern{
    position:relative;
    width:min(560px,100%);
    max-width:560px;
    margin:0;
    padding:34px 36px 30px;
    border:1px solid rgba(255,255,255,.72);
    border-top:5px solid var(--cz-yellow);
    border-radius:18px;
    background:rgba(255,255,255,.965);
    box-shadow:0 28px 90px rgba(10,15,18,.34),0 2px 10px rgba(10,15,18,.08);
    animation:login-card-in .46s cubic-bezier(.2,.8,.2,1) both;
}
.login-card-modern::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    border-radius:inherit;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.login-brand-row{display:flex;align-items:center;gap:16px;margin-bottom:28px}
.login-card-modern .login-logo-shell{
    min-width:174px;
    height:58px;
    border:1px solid #e3e7e9;
    box-shadow:0 4px 14px rgba(45,52,56,.07);
}
.login-card-modern .login-logo{max-width:160px;height:40px}
.login-brand-copy{display:flex;flex-direction:column;line-height:1.1}
.login-brand-copy strong{font-size:17px;color:#272e32;letter-spacing:.01em}
.login-brand-copy span{margin-top:5px;font-size:12px;color:#778087}
.login-heading{margin-bottom:24px}
.login-kicker{
    display:inline-flex;
    align-items:center;
    min-height:26px;
    padding:4px 9px;
    margin-bottom:10px;
    border-radius:999px;
    background:#fffbd0;
    color:#5e5700;
    font-size:11px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.login-heading h1{margin:0 0 8px;font-size:31px;line-height:1.16;letter-spacing:-.025em}
.login-heading p{margin:0;color:#6e787e;font-size:15px;line-height:1.55}
.login-form{display:grid;gap:16px}
.login-form label{margin:0;font-size:13px;color:#495158}
.login-form label>span{display:block;margin:0 0 7px;font-weight:750}
.login-form input{
    width:100%;
    min-height:48px;
    padding:12px 14px;
    border-radius:10px;
    background:#fbfcfc;
    font-size:16px;
}
.login-form input::placeholder{color:#a2a9ad}
.login-form input:focus{background:#fff}
.login-submit{
    width:100%;
    min-height:50px;
    margin-top:3px;
    border-radius:10px;
    font-size:16px;
    justify-content:space-between;
    padding-left:20px;
    padding-right:16px;
}
.login-submit-arrow{
    width:28px;height:28px;border-radius:8px;
    display:grid;place-items:center;
    background:rgba(50,55,58,.10);
    transition:transform .16s ease,background-color .16s ease;
}
.login-submit:hover .login-submit-arrow{transform:translateX(3px);background:rgba(50,55,58,.16)}
.login-error{margin:0 0 18px}
.login-meta{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:22px;
    padding-top:18px;
    border-top:1px solid #e8ebed;
}
.login-meta span{
    padding:5px 9px;
    border-radius:999px;
    background:#f3f5f6;
    color:#687178;
    font-size:11px;
    font-weight:650;
}
.login-footer{
    position:absolute;
    left:0;right:0;bottom:20px;
    text-align:center;
    color:rgba(255,255,255,.64);
    font-size:12px;
    letter-spacing:.04em;
}
@keyframes login-gradient-shift{
    0%{background-position:0% 24%}
    50%{background-position:58% 76%}
    100%{background-position:100% 38%}
}
@keyframes login-card-in{from{opacity:0;transform:translateY(15px) scale(.985)}to{opacity:1;transform:none}}
/* v27: на мобильной версии физический ambient полностью выключен. */
@media(max-width:820px){
    .login-ambient{display:none!important}
}
@media(max-width:620px){
    .login-stage{padding:24px 14px 54px}
    .login-card-modern{padding:26px 20px 24px;border-radius:15px}
    .login-brand-row{align-items:flex-start;flex-direction:column;margin-bottom:22px}
    .login-heading h1{font-size:27px}
    .login-footer{bottom:12px}
}
@media(prefers-reduced-motion:reduce){
    .login-page{animation:none}
    .login-card-modern{animation:none}
}

/* v28: жидкое слияние контурных шаров. Цвет/заливка меняются мягко в момент поглощения. */
.login-orb-shape{
    transition:background-color .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.login-orb{z-index:1}
.login-orb-merge-bridge{
    position:absolute;
    left:0;
    top:0;
    display:block;
    border-radius:999px;
    background:var(--bridge-fill,rgba(255,242,0,.55));
    transform-origin:0 50%;
    pointer-events:none;
    z-index:0;
    filter:blur(.45px);
    will-change:transform,width,height,opacity;
}

/* v30: более читаемые многострочные сообщения импорта. */
.dialog-copy p + p{margin-top:7px}
#import-mode-text{min-width:0}

/* v34: явный второй шаг входа по одноразовому коду. */
.login-kicker-success{
    background:#eaf7ef;
    color:#17643b;
    border:1px solid #c6e5d3;
}
.login-code-notice{
    display:flex;
    flex-direction:column;
    gap:3px;
    margin:0 0 18px;
    padding:12px 14px;
    border:1px solid #c6e5d3;
    border-radius:10px;
    background:#f1faf5;
    color:#24563b;
}
.login-code-notice strong{font-size:14px}
.login-code-notice span{font-size:13px;color:#5e7366}
.login-code-label{margin-top:2px!important}
.login-code-caption{
    display:block;
    margin:0 0 9px;
    font-size:13px;
    font-weight:750;
    color:#495158;
}
.login-code-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:9px;
    width:100%;
}
.login-code-digit{
    width:100%!important;
    min-width:0;
    height:58px!important;
    padding:0!important;
    border:1px solid #d4dade!important;
    border-radius:13px!important;
    background:#fbfcfc!important;
    text-align:center;
    font-size:27px!important;
    line-height:58px;
    font-weight:850!important;
    letter-spacing:0!important;
    font-variant-numeric:tabular-nums;
    caret-color:#272e32;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.86),0 1px 2px rgba(24,30,34,.03);
    transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,transform .12s ease;
}
.login-code-digit:hover{border-color:#bfc7cc!important;background:#fff!important}
.login-code-digit:focus{
    outline:none;
    border-color:#f0d900!important;
    background:#fffef3!important;
    box-shadow:0 0 0 3px rgba(255,231,0,.22),0 5px 15px rgba(27,31,34,.06)!important;
    transform:translateY(-1px);
}
.login-code-digit.is-filled{border-color:#c5cdd1!important;background:#fff!important}
.login-code-help{
    display:block;
    margin:8px 0 0;
    color:#858e93;
    font-size:12px;
}
.login-code-grid.is-invalid{animation:login-code-shake .28s ease}
@keyframes login-code-shake{
    0%,100%{transform:translateX(0)}
    25%{transform:translateX(-5px)}
    75%{transform:translateX(5px)}
}
.login-resend-form{margin-top:10px}
.login-resend-form button{width:100%}
@media (max-width:420px){
    .login-code-grid{gap:6px}
    .login-code-digit{height:52px!important;font-size:24px!important;line-height:52px}
}

/* v40: диагностика фоновых заданий Честного ЗНАКа */
.cz-status-cell{min-width:250px;vertical-align:top}
.cz-status-primary{font-weight:700;line-height:1.35}
.cz-diagnostics{margin-top:7px;display:grid;gap:3px;font-size:.78rem;line-height:1.3;color:#6d777d}
.cz-side-note{margin-top:2px;color:#8a6500;font-weight:700}
.cz-task-id{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:.74rem;color:#687279}

/* v44: наглядные этапы фоновой выгрузки */
.export-status-cell{min-width:260px;vertical-align:top}
.export-stage-flow{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;max-width:430px}
.export-stage-step{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:999px;background:#f2f4f5;color:#8a9499;font-size:.69rem;font-weight:700;white-space:nowrap;border:1px solid #e1e5e7}
.export-stage-step i{display:inline-grid;place-items:center;width:14px;height:14px;border-radius:50%;font-style:normal;font-size:.67rem;background:#dfe4e6;color:#7f898e;line-height:1}
.export-stage-step b{font:inherit}
.export-stage-step.is-done{background:#edf8f1;border-color:#c3e4cf;color:#34704c}
.export-stage-step.is-done i{background:#23a55a;color:#fff}
.export-stage-step.is-active{background:#fff7d6;border-color:#ead47a;color:#7d5b00}
.export-stage-step.is-active i{background:#f0c400;color:#5e4800;animation:export-stage-pulse 1.15s ease-in-out infinite}
@keyframes export-stage-pulse{0%,100%{transform:scale(.82);opacity:.65}50%{transform:scale(1.08);opacity:1}}

/* v49: device-specific navigation */
/* Scanner is a mobile navigation tab; UKEP / CZ connection is desktop-only. */
.top-nav a.nav-mobile-only{display:none}
@media(max-width:760px){
    .top-nav a.nav-mobile-only{display:flex}
    .top-nav a.nav-desktop-only{display:none}
}
