.sidebar {overflow-y:auto}
.sidebar>.brand,.sidebar>.nav-heading,.sidebar>.navigation,.sidebar>.sidebar-bottom {flex-shrink:0}
.stock-gauge {min-width:130px;margin:12px 0;color:var(--ink);font-size:12px}
.stock-gauge-caption {display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px;margin-bottom:7px}
.stock-gauge-caption strong {overflow-wrap:anywhere}
.stock-gauge-track {height:10px;border-radius:6px;background:var(--border, #323845);overflow:hidden}
.stock-gauge-fill {display:block;height:100%;border-radius:inherit}
.stock-gauge.warning .stock-gauge-caption>span {color:#d99800}
.stock-gauge.danger .stock-gauge-caption>span {color:#e34b48}
.pl-cards {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px;margin:18px 0}
.storage-grid {display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:18px;margin:18px 0}
/* Карточка склада: название, остаток крупно, полоса и две кнопки. */
/* Движением карточки управляет motion.css: здесь только её вид. */
.storage-card {padding:20px;display:flex;flex-direction:column;gap:12px;min-width:0}
.storage-card:hover {box-shadow:0 14px 34px -18px rgba(0,0,0,.45)}
.storage-card.archived {opacity:.58}
.storage-card-top {display:flex;align-items:flex-start;gap:12px;min-width:0}
.storage-card-heading {display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.storage-card-heading h3 {flex:1;min-width:0;font-size:calc(var(--text-15) * var(--font-scale));overflow-wrap:anywhere}
.storage-card-heading svg {width:18px;height:18px;flex-shrink:0;color:var(--accent)}
.storage-card-switch {flex-shrink:0;margin:0;padding:0}
.storage-card-count {display:flex;align-items:baseline;gap:9px;min-width:0}
.storage-card-count strong {font-size:calc(32px * var(--font-scale));font-weight:500;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.storage-card-count span {font-size:calc(12px * var(--font-scale));font-weight:400;letter-spacing:0;color:var(--muted)}
.storage-card-sub {margin:0;font-size:calc(var(--text-13) * var(--font-scale));color:var(--muted);overflow-wrap:anywhere}
.storage-bar {height:8px;border-radius:6px;background:var(--border, #323845);overflow:hidden}
.storage-bar-fill {display:block;height:100%;border-radius:inherit}
.storage-card-actions {display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}
.storage-card-actions .button {flex:1;min-width:120px;justify-content:center}
/* Диалог «Настройка склада»: название, лоты и товары — больше ничего. */
#store-form .modal-body {display:grid;gap:20px}
.store-label {display:grid;gap:6px}
/* display:grid сам по себе отменяет атрибут hidden у переключателя хранилища. */
.store-label[hidden] {display:none}
.store-label small {color:var(--muted)}
#store-switch {min-height:var(--action-height,44px)}
.store-block {display:grid;gap:12px;padding:18px;min-width:0;border:1px solid var(--border);border-radius:14px}
/* display:grid сам по себе отменяет hidden: у многоразового склада список
   товаров скрывается, и блок обязан исчезать. */
.store-block[hidden] {display:none}
.store-block-heading {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px}
.store-block-heading h3 {margin:0;font-size:calc(13px * var(--font-scale));font-weight:500;letter-spacing:0;text-transform:none;color:var(--muted)}
/* Счётчик — тихая подпись, а не залитая пилюля. */
.store-chip {padding:2px 8px;border-radius:6px;background:var(--border);font-size:calc(12px * var(--font-scale));font-weight:400;color:var(--ink);font-variant-numeric:tabular-nums}
.store-lot-list {display:grid;gap:4px;max-height:260px;overflow-y:auto;padding:4px;border-radius:12px;background:color-mix(in srgb,var(--border) 32%,transparent)}
.store-lot {display:flex;align-items:center;gap:12px;margin:0;padding:10px 12px;border-radius:10px;cursor:pointer}
.store-lot:hover {background:color-mix(in srgb,var(--accent) 12%,transparent)}
.store-lot input {flex-shrink:0;margin:0}
.store-lot span {display:grid;gap:2px;min-width:0}
.store-lot small {color:var(--muted);overflow-wrap:anywhere}
#store-goods {width:100%;min-height:200px;font-family:var(--mono, ui-monospace, monospace);resize:vertical}
.modal-footer-space {flex:1}
#order-card-actions {gap:12px;margin:18px 0}
.pl-order-message {padding:14px;margin:12px 0;border:1px solid var(--border);border-radius:12px;overflow-wrap:anywhere}
.pl-order-message p {white-space:pre-wrap}
.pl-order-message.own {background:#287856;color:#fff}
#orders-list td:last-child .button {margin-top:10px}
.page-footer {flex-wrap:wrap;gap:10px}
.page-footer a,.story-footer a {color:var(--accent, #4c9eff)}
@media(max-width:600px){.storage-card{padding:16px}.storage-card-actions .button{min-width:0}}
@media(prefers-reduced-motion:reduce){.stock-gauge-fill{transition:none}}

/* Один размер и один штрих на все иконки интерфейса. Цвет наследуется от текста
   строки, поэтому иконка держит ту же роль, что и подпись рядом. */
svg.icon {flex:0 0 18px;width:18px;height:18px;pointer-events:none;vertical-align:middle;color:inherit}
.account-name {display:inline-flex;align-items:center;gap:8px;max-width:230px}
.account-name>svg.icon {flex-basis:16px;width:16px;height:16px}
.account-name>.account-name-text {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
/* Переключатели уведомлений Telegram стояли вплотную: рамки соседних строк
   сливались в одну линию. */
#tg-notifications {display:flex;flex-direction:column;gap:10px;margin-top:4px}
#tg-notifications .switch-row {margin:0}
button,.button {column-gap:8px}
/* Кнопки и пункты меню — заливка одним цветом. Прежде главная кнопка уводила
   акцент в синий, а второстепенная подмешивала его в поверхность: от этого
   акцент был на всём сразу и не отмечал ничего. */
.button.primary {background:var(--accent);color:#fff}
.button.primary:hover:not(:disabled) {background:color-mix(in srgb,var(--accent) 88%,#000)}
.button.secondary,.icon-button {background:var(--surface);border-color:var(--border)}
.button.danger {background:#b93849;color:#fff;border-color:#b93849}
.nav-item {background:transparent}
/* Выбранный пункт — ступень поверхности и тонкая линия сверху, без подсветки. */
.nav-item.selected {background:#2a3140;box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
.nav-item:hover:not(.selected) {background:#222833}
.button:disabled,.icon-button:disabled {box-shadow:none;transform:none}
.action-row,.row-actions,.module-actions,.seller-actions,.header-actions {gap:12px}
.seller-heading+.seller-actions,.seller-widget .seller-actions {margin-block:18px}
.seller-actions .button {margin:0;white-space:normal}
@media(max-width:600px){.action-row,.row-actions,.module-actions,.seller-actions{gap:12px}}
