body.lk{background:var(--paper)}

.lk-wrap{max-width:76rem;margin-inline:auto;padding-inline:max(clamp(1rem,3vw,2.5rem),env(safe-area-inset-left)) max(clamp(1rem,3vw,2.5rem),env(safe-area-inset-right))}

/* header */
.lk-top{background:var(--accent);color:#fff}
.lk-top .lk-wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:.9rem}
.lk-brand{display:inline-flex;align-items:center;gap:.75rem;color:#fff;text-decoration:none}
.lk-brand img{display:block;height:1.9rem;width:auto}
.lk-cabinet{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:0;border-radius:var(--r);background:transparent;color:rgba(255,255,255,.8);text-decoration:none;transition:background-color .15s,color .15s}
.lk-cabinet:hover{color:#fff;background:rgba(255,255,255,.1)}
.lk-cabinet:focus-visible{outline:2px solid #fff;outline-offset:2px}
.lk-cabinet .lk-icon{width:1.25rem;height:1.25rem}
.lk-role{font-size:.8125rem;color:rgba(255,255,255,.72)}
.lk-copy{margin:0}
.lk-inline{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:0}
.lk-inline select{width:auto}
.lk-invites{margin:0;padding-inline-start:1.15rem;display:grid;gap:.35rem;font-size:.9rem;color:var(--muted)}
.lk-user{display:flex;align-items:center;gap:1rem;font-size:.9rem;color:rgba(255,255,255,.85)}
.lk-user form{margin:0}
.lk-quiet{background:none;border:0;padding:.5rem 0;font:600 .9rem/1.2 var(--sans);color:#fff;cursor:pointer;text-decoration:underline;text-underline-offset:.2em;min-height:2.75rem}
.lk-quiet:hover{color:#fff}

/* section tabs */
.lk-tabs{display:flex;gap:.25rem;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.lk-tabs a{padding:.55rem .8rem;font-size:.95rem;font-weight:600;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}
.lk-tabs a:hover{color:var(--ink);text-decoration:none}
.lk-tabs a[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}

/* section cards */
.lk-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1rem}
.lk-section{display:flex;align-items:flex-start;gap:.9rem;padding:1.25rem;background:#fff;border:1px solid var(--line);border-radius:var(--r);color:var(--ink);text-decoration:none;transition:border-color .15s,background-color .15s}
.lk-section:hover{border-color:var(--accent);background:#fbfaf6;text-decoration:none}
.lk-section:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.lk-section__icon{display:inline-flex;color:var(--accent);flex:none}
.lk-section__icon .lk-icon{width:1.35rem;height:1.35rem}
.lk-section__body{display:grid;gap:.2rem}
.lk-section__title{font-weight:600}
.lk-section__hint{font-size:.875rem;line-height:1.45;color:var(--muted)}

/* page */
.lk-main{padding-block:clamp(1.75rem,4vw,3rem) clamp(3rem,6vw,4.5rem);display:grid;gap:1.5rem;align-content:start}
.lk-head{display:grid;gap:.5rem;max-width:44rem}
.lk-h1{font-family:var(--serif);font-weight:500;font-size:clamp(1.75rem,3.2vw,2.5rem);line-height:1.1;letter-spacing:-.02em;margin:0}
.lk-h2{font-family:var(--serif);font-weight:500;font-size:1.35rem;line-height:1.2;letter-spacing:-.01em;margin:0;overflow-wrap:anywhere}
.lk-muted{margin:0;color:var(--muted);max-width:44rem}
.lk-status{margin:0;font-size:.9rem;color:var(--muted)}

/* card */
.lk-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.25rem,2.5vw,1.75rem)}
.lk-card--narrow{max-width:26rem;width:100%}
.lk-login-logo{display:block;height:2rem;width:auto}

/* form */
.lk-form{display:grid;gap:1.25rem}
.lk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.5rem;align-items:start}
@media (max-width:48rem){.lk-grid{grid-template-columns:1fr}}
.lk-field{display:grid;gap:.4rem;font-size:.9rem;font-weight:600;color:var(--ink)}
.lk-hint{font-size:.8125rem;font-weight:400;color:var(--muted);line-height:1.5}
input,select,textarea{width:100%;min-width:0;padding:.7rem .8rem;font:400 1rem/1.4 var(--sans);color:var(--ink);background:#fff;border:1px solid var(--field);border-radius:var(--r)}
textarea{resize:vertical}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
input[type=file]{padding:.55rem .6rem;font-size:.95rem;cursor:pointer}
input[type=file]::file-selector-button{margin-inline-end:.75rem;padding:.45rem .9rem;font:600 .9rem/1.3 var(--sans);color:var(--ink);background:var(--paper);border:1px solid var(--field);border-radius:var(--r);cursor:pointer}
input[type=file]::file-selector-button:hover{background:#ecebe5}
.lk-check{display:flex;align-items:center;gap:.6rem;font-size:.9rem;font-weight:400;color:var(--text);min-height:2.75rem;align-self:end}
.lk-check input{width:1.15rem;height:1.15rem;flex:none;padding:0;accent-color:var(--accent)}

.lk-advanced{border-top:1px solid var(--line);padding-top:.9rem}
.lk-advanced summary{cursor:pointer;font-size:.9rem;font-weight:600;color:var(--accent);list-style:none;display:flex;align-items:center;gap:.5rem;min-height:2.75rem}
.lk-advanced summary::-webkit-details-marker{display:none}
.lk-advanced summary::after{content:"";width:.45rem;height:.45rem;border-inline-end:2px solid currentColor;border-block-end:2px solid currentColor;rotate:45deg;translate:0 -.15rem;transition:rotate .15s}
.lk-advanced[open] summary::after{rotate:-135deg;translate:0 .1rem}
.lk-advanced[open] summary{margin-bottom:1rem}

.lk-btn{justify-self:start;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.9rem;padding:.65rem 1.5rem;font:600 1rem/1.3 var(--sans);color:#fff;background:var(--accent);border:1px solid var(--accent);border-radius:var(--r);cursor:pointer;transition:background-color .15s,scale .15s}
.lk-btn:hover{background:var(--accent-d);border-color:var(--accent-d);color:#fff}
.lk-btn:active{scale:.97}

/* alerts */
.lk-alert{margin:0;padding:.9rem 1.1rem;border-radius:var(--r);font-size:.95rem;line-height:1.55;border-inline-start:3px solid}
.lk-alert p{margin:0 0 .4rem}
.lk-alert ul{margin:0;padding-inline-start:1.15rem}
.lk-alert--error{background:#fdf0ec;border-color:#9a2b00;color:#7a2200}
.lk-alert--warn{background:#fdf5e6;border-color:#b06f00;color:#5c3b00}

/* result */
.lk-result{display:grid;gap:1.25rem}
.lk-result-head{display:grid;gap:.75rem;padding-bottom:1.25rem;border-bottom:1px solid var(--line)}
.lk-meta{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem 1.5rem;font-size:.875rem;color:var(--muted)}
.lk-meta b{color:var(--ink);font-weight:600}

.lk-fields{margin:0;display:grid;gap:.5rem}
.lk-fields div{display:grid;grid-template-columns:minmax(0,12rem) minmax(0,1fr);gap:.35rem 1.5rem;padding-block:.35rem;border-bottom:1px solid #efeee9}
.lk-fields div:last-child{border-bottom:0}
.lk-fields dt{color:var(--muted);font-size:.9rem}
.lk-fields dd{margin:0;overflow-wrap:anywhere}
@media (max-width:40rem){.lk-fields div{grid-template-columns:1fr;gap:.1rem}}

.lk-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);container:lk-table/inline-size}
.lk-table{width:100%;border-collapse:collapse;font-size:.875rem}
.lk-table th{text-align:start;font-weight:600;color:var(--muted);padding:.6rem .75rem;background:var(--paper);border-bottom:1px solid var(--line);white-space:nowrap}
.lk-table td{padding:.6rem .75rem;border-bottom:1px solid #efeee9;vertical-align:top}
.lk-table tr:last-child td{border-bottom:0}
@container lk-table (max-width:52rem){
  .lk-table thead{display:none}
  .lk-table tbody,.lk-table tr,.lk-table td{display:block}
  .lk-table tr{padding:.9rem .75rem;border-bottom:1px solid var(--line)}
  .lk-table tr:last-child{border-bottom:0}
  .lk-table td{display:grid;grid-template-columns:minmax(0,7.5rem) minmax(0,1fr);gap:.6rem;padding:.2rem 0;border:0}
  .lk-table td::before{content:attr(data-label);color:var(--muted);font-size:.8125rem;font-weight:400}
  .lk-table td.lk-pick{display:block;padding:0 0 .35rem}
  .lk-table td.lk-pick::before{content:none}
  .lk-pickhit{width:2.75rem;height:2.75rem;min-height:2.75rem;margin-inline-start:-.5rem}
  .lk-table .lk-pick input{flex:0 0 auto}
  .lk-inline{display:grid;grid-template-columns:1fr;gap:.4rem;justify-items:stretch}
  .lk-inline select{width:100%}
  .lk-table td.lk-cell-wide{display:block}
  .lk-table td.lk-cell-wide::before{content:attr(data-label);display:block;margin-bottom:.35rem;color:var(--muted);font-size:.8125rem;font-weight:400}
}

.lk-pre{margin:1rem 0 0;padding:1rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);font:400 .8125rem/1.6 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;max-height:24rem;overflow:auto}

/* login */
.lk-login{min-height:calc(100vh - 4.5rem);display:grid;place-items:center;padding:clamp(1.5rem,5vw,4rem) max(1rem,env(safe-area-inset-left))}
.lk-login .lk-card{display:grid;gap:1rem}
.lk-login .lk-btn{justify-self:stretch}

@media (prefers-reduced-motion:reduce){.lk-btn,.lk-cabinet,.lk-advanced summary::after{transition:none}}

/* nav */
.lk-nav{display:flex;gap:.25rem;flex-wrap:wrap;margin-inline-end:auto}
.lk-nav a{display:inline-flex;align-items:center;gap:.45rem;text-decoration:none;color:rgba(255,255,255,.8);font-size:.95rem;padding:.55rem .8rem;border-radius:var(--r);min-height:2.5rem}
.lk-nav a:hover{color:#fff;background:rgba(255,255,255,.1);text-decoration:none}
.lk-nav a[aria-current=page]{color:var(--ink);background:#fff;font-weight:600}
.lk-nav a:focus-visible{outline-color:#fff}

/* upload + toolbar */
.lk-upload{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem 1.5rem;align-items:start}
.lk-upload .lk-field{grid-column:1;grid-row:1}
.lk-upload .lk-btn{grid-column:2;grid-row:1;align-self:end}
.lk-upload .lk-hint{grid-column:1/-1;grid-row:2}
@media (max-width:48rem){.lk-upload{grid-template-columns:1fr}.lk-upload .lk-btn{grid-column:1;grid-row:2;justify-self:stretch}.lk-upload .lk-hint{grid-row:3}}
.lk-toolbar{display:flex;align-items:end;justify-content:space-between;gap:1rem 2rem;flex-wrap:wrap}
.lk-filter{display:flex;align-items:end;gap:.75rem;flex-wrap:wrap}
.lk-filter .lk-field{min-width:14rem}
.lk-count{margin:0;font-size:.9rem;color:var(--muted)}

/* list */
.lk-card--flush{padding:0;overflow:hidden}
.lk-card--flush .lk-table-wrap{border:0;border-radius:0}
.lk-sub{display:block;font-size:.8125rem;color:var(--muted);font-weight:400}
.lk-num{font-variant-numeric:tabular-nums;white-space:nowrap}
.lk-mono{font-family:var(--mono);font-size:.8125rem;overflow-wrap:anywhere}
.lk-empty{margin:0;padding:1.5rem;color:var(--muted)}
.lk-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .6rem;border-radius:var(--r);font-size:.8125rem;font-weight:600;color:var(--text);background:var(--paper);border:1px solid var(--line);white-space:nowrap}
.lk-badge--ok{color:#0b4a3c;background:#e6f2ee;border-color:#b9d9cf}
.lk-badge--warn{color:#6b4500;background:#fdf3e2;border-color:#e8cfa5}
.lk-badge--error{color:#7a2200;background:#fdf0ec;border-color:#e6c3b8}
.lk-badge--pending{color:#1d3f6b;background:#eaf1fa;border-color:#bcd0e6}
.lk-badge--muted{color:#4a5262;background:#f1f2f4;border-color:#d6d8dd}

/* конкретные статусы: видно с одного взгляда */
.lk-badge--s-matched{color:#0d4b63;background:#e7f3f8;border-color:#b7d8e6}
.lk-badge--s-committed{color:#0b4a3c;background:#eef7f3;border-color:#bfdcd2}
.lk-badge--s-posted{color:#fff;background:#0b5d4b;border-color:#0b5d4b}
.lk-badge--s-posted .lk-icon{stroke-width:2.4}
.lk-badge--s-needs-review{color:#6b4500;background:#fdf3e2;border-color:#e0c294}
.lk-badge--s-error{color:#7a2200;background:#fdf0ec;border-color:#e0b8aa}
.lk-badge--s-not-accounting,.lk-badge--s-not-supported,.lk-badge--s-rolled-back{color:#4a5262;background:#f1f2f4;border-color:#d6d8dd}
.lk-alert--ok{background:#e6f2ee;border-color:#0b5d4b;color:#0b4a3c}
.lk-btn--quiet{background:transparent;color:var(--ink);border-color:var(--field)}
.lk-btn--quiet:hover{background:var(--paper);border-color:var(--ink);color:var(--ink)}.lk-pager{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.lk-back{margin:0}
.lk-back a{display:inline-flex;align-items:center;gap:.4rem;color:var(--accent);font-size:.9rem;font-weight:600;text-decoration:none;min-height:2.5rem}
.lk-back a:hover{text-decoration:underline}
.lk-head--row{display:flex;align-items:start;justify-content:space-between;gap:1rem 2rem;flex-wrap:wrap;max-width:none}
.lk-head--row .lk-h1{overflow-wrap:anywhere}

/* timeline */
.lk-timeline{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.1rem}
.lk-timeline li{display:grid;grid-template-columns:minmax(0,10rem) minmax(0,1fr);gap:.35rem 1.5rem;padding:.6rem 0;border-top:1px solid #efeee9}
.lk-timeline li:first-child{border-top:0}
.lk-timeline-time{font:.8125rem/1.5 var(--mono);color:var(--muted)}
.lk-timeline-body b{font-weight:600;color:var(--ink)}
@media (max-width:40rem){.lk-timeline li{grid-template-columns:1fr;gap:.1rem}}

@media (max-width:36rem){
  .lk-user span{display:none}
  .lk-top .lk-wrap{gap:.5rem .75rem;padding-block:.7rem}
  .lk-nav a{padding:.5rem .65rem;font-size:.9rem}
}

/* icons — условный набор, заменяется на финальный */
.lk-sprite{position:absolute;width:0;height:0;overflow:hidden}
.lk-icon{width:1.05em;height:1.05em;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.15em}
.lk-badge .lk-icon{width:.95em;height:.95em;stroke-width:2}
.lk-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:0}

@media (max-width:48rem){
  .lk-filter{flex-wrap:nowrap;width:100%}
  .lk-filter .lk-field{min-width:0;flex:1 1 auto}
  .lk-toolbar-side{width:100%;justify-content:space-between}
}

/* grid/flex-дети не должны раздувать колонку своим min-content */
.lk-main > *{min-width:0}
.lk-head--row > *{min-width:0}

/* цель не меньше 24×24 без изменения высоты строки */
.lk-table td a{display:inline-block;padding-block:.3rem;margin-block:-.3rem}
.lk-check input{width:1.25rem;height:1.25rem}

.lk-timeline li{min-width:0}
.lk-timeline-body{min-width:0}
.lk-sub{overflow-wrap:anywhere}
.lk-table td a{min-width:1.5rem}

.lk-toolbar-side{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}

@media (max-width:48rem){
  .lk-form .lk-btn{justify-self:stretch}
}

/* «Без номера» — действие, а не значение */
.lk-table td a.lk-nonumber{color:var(--muted);text-decoration-style:dotted;font-weight:500}
.lk-table td a.lk-nonumber:hover{color:var(--accent);text-decoration-style:solid}
@media (hover:hover){
  .lk-table tbody tr:hover{background:var(--paper)}
}

/* предсказуемые колонки на широком экране: длинные номера счетов не раздувают таблицу */
@container lk-table (min-width:52.01rem){
  .lk-table--docs{table-layout:fixed}
  .lk-table--docs th:nth-child(1){width:2.75rem}
  .lk-table--docs th:nth-child(2){width:7.5rem}
  .lk-table--docs th:nth-child(3){width:22%}
  .lk-table--docs th:nth-child(4){width:auto}
  .lk-table--docs th:nth-child(5){width:8.5rem}
  .lk-table--docs th:nth-child(6){width:12rem}
  .lk-table--docs td{overflow-wrap:anywhere}
  .lk-table--docs td:last-child{overflow-wrap:normal}
  .lk-table--docs th:nth-child(5),.lk-table--docs td:nth-child(5){text-align:end}
  .lk-table--docs .lk-badge{white-space:nowrap}
}

/* обновление списка: мягкое затухание вместо подмены */
#doc-table{transition:opacity 160ms cubic-bezier(0.23,1,0.32,1)}
#doc-table.lk-swap{opacity:.55}
.lk-badge{transition:background-color 160ms ease,border-color 160ms ease,color 160ms ease}
@media (prefers-reduced-motion:reduce){
  #doc-table{transition:none}
  #doc-table.lk-swap{opacity:1}
  .lk-badge{transition:none}
}

/* выбор строк и массовые действия */
.lk-table .lk-pick{width:2.75rem;padding:0;text-align:center}
.lk-pickhit{display:flex;align-items:center;justify-content:center;min-height:2.75rem;cursor:pointer}
.lk-table .lk-pick input{width:20px;height:20px;accent-color:var(--accent);cursor:pointer}
.lk-table tbody tr:has(.lk-pick input:checked){background:var(--paper)}
.lk-bulkbar[hidden]{display:none}
.lk-bulkbar{position:fixed;left:50%;transform:translateX(-50%);bottom:1.25rem;z-index:20;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;width:min(46rem,calc(100vw - 2rem));padding:.85rem 1rem;border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:0 12px 32px rgba(16,24,40,.18)}
.lk-bulkbar__count{font-weight:600;font-size:.95rem;margin-inline-end:auto}
.lk-btn--ghost{background:transparent;border-color:transparent;color:var(--muted)}
.lk-btn--ghost:hover{background:var(--paper);border-color:var(--line);color:var(--ink)}
.lk-main:has(.lk-bulkbar:not([hidden])){padding-bottom:6rem}

/* статусы: работа идёт — вращающаяся дуга; смена статуса — короткий отклик */
@media (prefers-reduced-motion:no-preference){
  .lk-badge--pending .lk-icon{animation:lk-spin 1.1s linear infinite}
  .lk-badge--changed{animation:lk-pop 520ms cubic-bezier(0.34,1.56,0.64,1)}
  @keyframes lk-spin{to{transform:rotate(360deg)}}
  @keyframes lk-pop{0%{transform:scale(.94);box-shadow:0 0 0 0 rgba(11,93,75,.35)}
                    55%{transform:scale(1.03);box-shadow:0 0 0 4px rgba(11,93,75,0)}
                    100%{transform:scale(1);box-shadow:none}}
}
@media (prefers-reduced-motion:reduce){
  .lk-badge--pending .lk-icon{animation:none}
  .lk-badge--changed{animation:none}
}
@media (prefers-reduced-motion:no-preference){
  .lk-bulkbar{animation:lk-rise 200ms cubic-bezier(0.23,1,0.32,1)}
  @keyframes lk-rise{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}
}
@media (max-width:40rem){
  .lk-bulkbar{bottom:.75rem;padding:.7rem .75rem;gap:.5rem}
  .lk-bulkbar__count{flex:1 1 100%;margin:0;font-size:.9rem}
  .lk-bulkbar .lk-btn{flex:1 1 calc(50% - .25rem);padding-inline:.6rem;font-size:.9rem;align-self:stretch}
  .lk-bulkbar .lk-btn--ghost{flex:1 1 100%;padding-block:.4rem}
}

/* только что загруженные документы */
.lk-row--new{background:#f2f9f6}
.lk-row--new td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
@media (prefers-reduced-motion:no-preference){
  .lk-row--new{animation:lk-new 1.2s ease-out}
  @keyframes lk-new{from{background:#dcefe7}to{background:#f2f9f6}}
}

.lk-fresh{min-height:1.2rem;font-size:.85rem;color:var(--muted)}
.lk-fresh--warn{color:#8a3d00;font-weight:600}

/* своё поле выбора файла: нативный контрол говорит на языке браузера */
.lk-file{display:flex;align-items:center;gap:.75rem;padding:.45rem .5rem;border:1px solid var(--field);border-radius:var(--r);background:#fff;min-height:2.75rem}
.lk-file input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.lk-file:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.lk-file-btn{flex:0 0 auto;display:inline-flex;align-items:center;padding:.45rem .85rem;border:1px solid var(--field);border-radius:var(--r);background:var(--paper);font-size:.9rem;font-weight:600;color:var(--ink);cursor:pointer}
.lk-file:hover .lk-file-btn{background:#fff;border-color:var(--ink)}
.lk-file-name{min-width:0;font-size:.9rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lk-file-name.lk-file-name--set{color:var(--ink);font-weight:600}

/* вход через Telegram */
.lk-btn--tg{background:var(--ink);border-color:var(--ink);color:#fff;justify-self:stretch;min-height:3rem}
.lk-btn--tg:hover{background:#1d2740;border-color:#1d2740;color:#fff}
.lk-btn--tg:disabled{opacity:.7;cursor:progress}
.lk-tg-status{margin:0;font-size:.9rem;color:var(--muted);line-height:1.4}
.lk-tg-status--warn{color:#8a3d00;font-weight:600}
.lk-sep{display:flex;align-items:center;gap:.75rem;margin:.25rem 0;color:var(--muted);font-size:.85rem}
.lk-sep::before,.lk-sep::after{content:"";flex:1;height:1px;background:var(--line)}
.lk-login-form{display:grid;gap:1rem}
.lk-login-form .lk-btn{justify-self:stretch}
