:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#243d35;background:#f7f8f4;font-synthesis:none;--line:#dce3dc;--green:#28654d;--muted:#6e7e75;--paper:#fff}*{box-sizing:border-box}body{margin:0}.shell{max-width:1060px;margin:auto;padding:24px 32px;padding-bottom:max(24px,env(safe-area-inset-bottom))}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:22px;gap:16px}.brand{font-size:28px;color:var(--green);font-weight:700}.brand span{font-size:20px}#identity{font-size:13px;color:var(--muted)}nav{display:flex;gap:8px;margin:24px 0 42px;overflow:auto}button,input,textarea,select{font:inherit}button,.link{cursor:pointer;border:1px solid var(--line);border-radius:12px;padding:12px 17px;background:var(--paper);color:inherit;min-height:44px}button:hover{border-color:var(--green)}button:disabled{opacity:.5;cursor:wait}nav button{white-space:nowrap;background:transparent;border-color:transparent}nav button.active{background:#e5eee5;color:#215a42}.primary,.link{background:var(--green);color:#fff;border-color:var(--green)}.heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--green);font-weight:700}h1{font-size:36px;letter-spacing:-1.2px;margin:8px 0 12px;line-height:1.15}h2{font-size:21px;margin:30px 0 16px}.muted{color:var(--muted);font-size:14px;line-height:1.6}.filters{display:flex;gap:12px;margin-top:28px}.filters input{flex:1;min-width:0}.filters select{max-width:40%}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:12px;color:inherit;min-height:46px}input:focus,textarea:focus,select:focus{outline:2px solid #80a58c;outline-offset:2px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card{background:var(--paper);border:1px solid var(--line);border-radius:17px;overflow:hidden;cursor:pointer;padding:0;text-align:left;min-width:0}.card:hover{transform:translateY(-2px)}.art{height:190px;background:#edf0e8;display:flex;align-items:center;justify-content:center;color:#9bab9b;font-size:60px;overflow:hidden}.art img{width:100%;height:100%;object-fit:contain}.card-body{padding:18px}.tag{color:var(--green);font-size:11px;letter-spacing:.6px;text-transform:uppercase}.card h2{font-size:19px;margin:10px 0;overflow-wrap:anywhere}.card p{margin:0 0 18px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card .arrow{font-size:13px;font-weight:600;color:var(--green)}.empty{grid-column:1/-1;padding:60px 20px;text-align:center;border:1px dashed #bdcbbc;border-radius:16px}.empty strong{font-size:20px}.totals{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:28px 0}.metric{background:#e8eee4;padding:22px;border-radius:15px}.metric span{font-size:13px;color:var(--muted)}.metric strong{display:block;font-size:24px;margin-top:12px}.record{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}.record .muted{margin:5px 0 0}.record strong{overflow-wrap:anywhere}.record button{font-size:12px;padding:8px}.record .value{text-align:right;white-space:nowrap}form{display:grid;gap:16px;max-width:560px}label{display:grid;gap:7px;font-size:14px;font-weight:500}details{padding:18px;border:1px solid var(--line);border-radius:12px;margin-top:26px}summary{cursor:pointer}details form{margin-top:22px}#notice{background:#fff2dd;color:#7b4b16;border-radius:12px;padding:16px;line-height:1.5}footer{margin-top:64px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}dialog{border:0;border-radius:20px;padding:30px;width:calc(100% - 28px);max-width:580px;max-height:90dvh;overflow:auto;background:var(--paper);color:inherit}dialog::backdrop{background:#12251f88}.close{float:right;font-size:24px;border:0;padding:4px 12px}.description{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.link{display:inline-block;text-decoration:none;margin:15px 0}.actions{display:flex;gap:10px;flex-wrap:wrap}.form-error{color:#a62f2f}#more{display:block;margin:28px auto}*[hidden]{display:none!important}body.dark{background:#17241f;color:#e5eee6;--paper:#22352b;--line:#3b5044;--muted:#a0b3a7;--green:#72c89b}body.dark .primary,body.dark .link{color:#14251a}body.dark .metric,body.dark .art,body.dark nav button.active{background:#2b4332}body.dark nav button.active{color:#bbe9c9}@media(max-width:640px){.shell{padding:18px 16px}header{padding-bottom:16px}.brand span{font-size:18px}nav{margin:18px 0 30px;gap:0}nav button{font-size:13px;padding:10px 12px}h1{font-size:29px}.heading{align-items:flex-start;flex-direction:column}.heading .primary{align-self:flex-end}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.art{height:145px}.card-body{padding:13px}.card h2{font-size:16px}.card .muted{font-size:12px}.filters{gap:8px}.totals{grid-template-columns:1fr;gap:8px}.metric{display:flex;align-items:center;justify-content:space-between;padding:17px}.metric strong{font-size:23px;margin:0}.record{align-items:flex-start}dialog{padding:22px}.record .value{font-size:14px}}@media(prefers-reduced-motion:reduce){.card:hover{transform:none}}

.header-tools{display:flex;align-items:center;gap:12px}#theme-toggle{font-size:22px;padding:6px 12px}.check{display:flex;align-items:center;gap:10px}.check input{width:20px;min-height:20px;height:20px}.dark .tag,.dark .arrow,.dark .eyebrow{color:#a4d7b7}@media(max-width:640px){#identity{max-width:135px;text-align:right;font-size:11px}.header-tools{gap:6px}}
/* v2: wrapped navigation and operational forms */
nav{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;overflow:visible;margin-bottom:32px}nav button{white-space:normal;border:1px solid var(--line);background:var(--paper);padding:13px 8px;font-size:13px;line-height:1.35}nav button.active{border-color:#a9c6b1;font-weight:600}.stack{display:grid;gap:14px;margin:20px 0}.panel{padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.panel h3{margin:0 0 12px}.panel p{line-height:1.5}.panel .actions{margin-top:14px}.dialog-error{color:#b54130;white-space:pre-wrap}dialog form{max-width:none;clear:both}.line-fields{display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px}.line-fields label{min-width:0}.line-fields input{min-width:0}.line-fields button{grid-column:1/-1}.permission-box{margin:14px 0;display:grid;gap:10px}.import-note{border-left:3px solid #b98d43;padding-left:12px}.small{font-size:12px;color:var(--muted)}.record{flex-wrap:wrap}#stock-actions{margin-top:20px}#warehouse>label{max-width:420px}#permission-person{font-weight:600}#balance-title{font-size:32px}summary{min-height:24px}#identity{overflow-wrap:anywhere}.shell{padding-top:max(18px,env(safe-area-inset-top))}button:focus-visible{outline:2px solid var(--green);outline-offset:3px}
@media(max-width:720px){nav{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}nav button{grid-column:span 3;min-height:48px}nav button:nth-child(n+5){grid-column:span 2}.line-fields{grid-template-columns:1fr 1fr}.line-fields label:first-child{grid-column:1/-1}.heading .primary{align-self:stretch}.panel{padding:16px}.filters{flex-wrap:wrap}.filters select{max-width:100%}.actions button{flex:1}.shell{padding-left:16px;padding-right:16px}.record .value{white-space:normal}.header-tools{max-width:60%}#stock-actions button{font-size:13px;padding:10px}}

.finance-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.finance-col{min-width:0}.finance-col+ .finance-col{border-left:1px solid var(--line);padding-left:12px}.finance-col h4{margin:0 0 12px;font-size:16px}.finance-entry{padding:12px 0;border-top:1px solid var(--line);margin-top:12px;overflow-wrap:anywhere}.finance-entry button{display:block;padding:8px;font-size:12px;min-height:38px;margin-top:8px;width:100%}.finance-entry p{margin:4px 0}.finance-col>strong{display:block;font-size:17px;overflow-wrap:anywhere}#finance-access-members{display:grid;gap:12px;max-height:360px;overflow:auto}.line-fields{grid-template-columns:2fr 1fr}.header-tools{max-width:70%}#refresh-page{font-size:23px;padding:6px 10px}#identity{max-width:150px}@media(max-width:640px){#identity{max-width:105px;font-size:10px}.header-tools{gap:4px}#refresh-page,#theme-toggle{padding:6px 9px;min-width:40px}.finance-pair{gap:8px}.finance-col+.finance-col{padding-left:8px}.line-fields label:first-child{grid-column:auto}}

/* Каталог: несколько магазинов и подписи к кнопкам. */
.shop-fields{display:grid;gap:14px}.shop-fields>h3{margin:0;font-size:15px;color:var(--green)}.shop-entry{display:grid;gap:12px;padding:16px;background:var(--paper);border:1px solid var(--line);border-radius:12px}.shop-entry h3{margin:0;color:var(--green);font-size:15px}.shop-entry label{min-width:0}.product-price{font-size:18px;font-weight:700;color:var(--green)}.product-shops{display:grid;gap:12px;margin:16px 0}.product-shops .shop-link{display:flex;flex-direction:column;gap:6px;align-items:flex-start;margin:0;width:100%;overflow-wrap:anywhere}.shop-link small{font-size:12px;font-weight:400;line-height:1.4;color:#d5ecdf}
.expense-actions{display:flex;gap:8px;flex-wrap:wrap;width:100%;margin-top:10px}.receipt-preview{display:block;width:100%;max-height:65vh;min-height:320px;object-fit:contain;border:1px solid var(--line);border-radius:8px}.receipt-preview[src$=".pdf"]{height:65vh}#receipt-dialog .link{margin-top:16px}
.receipt-pdf-page{height:auto;max-height:none;min-height:0}.receipt-pages{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}.receipt-pages .muted{text-align:center;white-space:nowrap}.receipt-pages button{padding:8px;min-height:40px}
.expense-compensated{width:100%;font-size:14px}.expense-compensated input{flex:none}.expense-author{margin-top:4px}
.action-dialog h2{margin:0 0 16px}.action-dialog p{line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.action-dialog form{gap:12px}.action-dialog .actions{margin-top:12px;justify-content:flex-end}
#spending .expense-compensation-filter{max-width:436px;margin-top:16px}
.card .catalog-price{display:block;margin:-8px 0 14px;font-size:16px;line-height:1.4;color:var(--green)}
/* Гумка: категории, приход на склад и общий сбор. */
nav{grid-template-columns:repeat(4,minmax(0,1fr))}
.gumka-finance-fields,.gumka-property-fields{display:grid;gap:16px}
#gumka-list .panel{overflow-wrap:anywhere}
#gumka-list .gumka-recipient{font-weight:650;color:var(--green)}
#gumka .gumka-filters{display:grid;grid-template-columns:repeat(2,minmax(0,340px));gap:12px;margin:20px 0}
@media(max-width:640px){#gumka .gumka-filters{grid-template-columns:minmax(0,1fr)}}
#finance .finance-member-section{margin-top:32px}
#finance .finance-member-section h2{margin:0 0 8px}
#finance .finance-member-section>.muted{margin:0 0 18px}
#finance .finance-member-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:12px;margin:0 0 20px}
#finance .finance-member-summary.by-month{grid-template-columns:repeat(2,minmax(0,1fr))}
#finance .finance-member-summary.by-month .finance-due-card{grid-column:1/-1}
#finance .finance-member-summary .metric{min-width:0;overflow-wrap:anywhere}
#finance .finance-member-summary .finance-due-card{background:#e3f0e7;border:1px solid #9bcdb1}
body.dark #finance .finance-member-summary .finance-due-card{background:#214638;border-color:#4c8067}
#finance .finance-due-card small{display:block;margin-top:8px;font-size:12px}
#members .finance-debt-filter,#finance .finance-debt-filter{display:block;max-width:340px;margin:0 0 20px}
#members .member-filters,#finance .member-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;align-items:end;margin:0 0 18px}
#members .member-filters label,#finance .member-filters label{min-width:0;margin:0;max-width:none}
#members #member-period-note{margin:0 0 18px}
@media(max-width:640px){#members .member-filters,#finance .member-filters{grid-template-columns:minmax(0,1fr)}}
#finance .member-filters[hidden]{display:none!important}
#finance-next-month{margin:8px 0 18px}
#finance #totals[hidden],#finance #gumka-income-note[hidden],#finance #finance-next-month[hidden]{display:none!important}
#finance .finance-person-status{font-size:14px;font-weight:650;color:var(--green);margin:2px 0 16px}
@media(max-width:520px){#finance .finance-member-summary{grid-template-columns:repeat(2,minmax(0,1fr))}#finance .finance-member-summary .finance-due-card{grid-column:1/-1}}
@media(max-width:720px){nav{grid-template-columns:repeat(4,minmax(0,1fr))}nav button,nav button:nth-child(n+5){grid-column:span 2}}
/* Заголовок раздела «Нам нужно». */
#needs .eyebrow,#needs h1{color:#a76507}
body.dark #needs .eyebrow,body.dark #needs h1{color:#ffd386}
/* Компактная навигация на телефоне. */
@media(max-width:720px){nav{gap:5px;margin:14px 0 20px}nav button{min-height:40px;padding:7px 9px;font-size:12px;line-height:1.2}}
@media(orientation:landscape) and (max-height:600px){nav{display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;grid-template-columns:none;flex-wrap:nowrap;scrollbar-width:thin;margin:10px 0 15px;padding-bottom:4px}nav button,nav button:nth-child(n+5){grid-column:auto;flex:0 0 auto;min-height:38px;padding:6px 10px;white-space:nowrap;font-size:12px;line-height:1.2}}
.planning-fields{border:1px solid var(--line);border-radius:12px;display:grid;gap:12px;padding:14px;margin:0 0 14px;min-width:0}
.planning-fields legend{padding:0 8px;font-weight:700;color:var(--green)}
.planning-fields textarea{min-height:72px}.planning-fields .planning-remove{justify-self:start}
#planning-form{max-width:800px}.planning-card{overflow-wrap:anywhere}.planning-card h2{margin:0 0 8px}
.planning-card .check{margin-top:12px}
.planning-period{max-width:360px;margin-top:20px}.planning-totals{grid-template-columns:minmax(0,380px);margin:16px 0}
@media(max-width:640px){.planning-totals{grid-template-columns:minmax(0,1fr)}}
.header-tools{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
#history-button{padding:8px 10px;min-height:38px;font-size:13px}
#history-dialog{width:min(760px,calc(100vw - 24px));max-height:85vh;overflow:auto}
#history-dialog #history-section{margin-bottom:16px}
#history-list .history-entry{overflow-wrap:anywhere}
#history-list .history-entry h3{margin:0 0 6px}
#history-list .history-entry p{margin:6px 0}
/* Финансовые суммы на телефоне: каждой карточке нужна полная ширина. */
@media(max-width:640px){
 #finance .finance-member-summary,
 #finance .finance-member-summary.by-month{grid-template-columns:minmax(0,1fr)}
 #finance .finance-member-summary .metric{display:block}
 #finance .finance-member-summary .metric strong{white-space:nowrap;overflow-wrap:normal;font-size:clamp(19px,5vw,24px);font-variant-numeric:tabular-nums;margin-top:10px}
}
.excel-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 20px}
.excel-actions[hidden]{display:none!important}
.access-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:18px 0}
.access-filters label{min-width:0}
#user-list{margin-bottom:20px}
#copy-permissions{margin:12px 0}
.copy-targets{display:grid;gap:8px;max-height:42vh;overflow:auto;margin:18px 0}
@media(max-width:640px){.access-filters{grid-template-columns:minmax(0,1fr)}}
#finance #totals .finance-balance-metric{display:block}
#finance #totals .finance-balance-metric .uncompensated-total{display:block;border-top:1px solid var(--line);margin-top:14px;padding-top:12px;color:var(--muted);font-size:13px;line-height:1.45;font-weight:600}
#finance #totals .finance-balance-metric .uncompensated-total strong{display:block;margin:6px 0 0;color:inherit;font-size:18px;font-variant-numeric:tabular-nums;white-space:nowrap}
#expenses .expense-compensated{flex-wrap:wrap;column-gap:10px;row-gap:4px}
#expenses .expense-compensated .expense-compensation-target{font-size:12px;font-weight:500;color:var(--muted)}


/* Mobile layout repair, 2026-09-28. Keep original sizing and section colours. */
header .brand{display:flex;align-items:center;gap:8px;flex-shrink:0;white-space:nowrap}
header .brand span{display:inline;font-size:20px;margin:0;line-height:1.2}
@media(max-width:720px){
 .shell{padding-left:14px;padding-right:14px}
 header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding-bottom:12px}
 header .brand{font-size:24px;gap:6px}
 header .brand span{font-size:18px}
 .header-tools{display:grid;grid-template-columns:repeat(3,auto);align-items:center;justify-content:end;gap:6px;max-width:none;min-width:0}
 #identity{grid-column:1/-1;max-width:none;font-size:11px;line-height:1.25;text-align:right;overflow-wrap:anywhere}
 #history-button{min-height:40px;padding:7px 9px;font-size:12px}
 #refresh-page,#theme-toggle{width:40px;min-width:40px;min-height:40px;padding:5px;font-size:22px}
 nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:12px 0 20px;padding:0}
 nav button,nav button:nth-child(n+5){grid-column:auto;min-width:0;min-height:40px;padding:7px 8px;font-size:12px;line-height:1.2;white-space:normal}
 h1{font-size:28px;line-height:1.15;letter-spacing:-.7px}
 .excel-actions{gap:8px}.excel-actions button{flex:1 1 140px;font-size:13px;padding:10px 8px}
 .filters input{min-width:0}.filters select{min-width:0;max-width:100%}
 .metric{min-width:0}.metric strong{font-variant-numeric:tabular-nums}
}
@media(max-width:359px){
 header{grid-template-columns:minmax(0,1fr)}
 .header-tools{grid-template-columns:minmax(0,1fr) auto auto auto;justify-content:stretch;width:100%}
 #identity{grid-column:auto;text-align:left}
}
@media(orientation:landscape) and (max-height:600px){
 nav{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;padding-bottom:4px}
 nav button,nav button:nth-child(n+5){flex:0 0 auto;white-space:nowrap}
}

/* Standalone products in the needs list. */
.needs-product-fields{min-width:0;display:grid;gap:16px;border:1px solid var(--line);border-radius:12px;padding:16px;margin:0}
.needs-product-fields legend{padding:0 6px;font-weight:600}
#needs-custom-form{max-width:560px}
#needs-custom-form label,#needs-edit-form label{min-width:0}
#needs-custom-form input,#needs-edit-form input{min-width:0}
#needs-list .panel{overflow-wrap:anywhere}
#needs-list .art{border-radius:12px;margin:12px 0;max-width:420px}
body.dark #needs-list .shop-link small{color:#193d2a}

/* Hidden controls must stay hidden despite component display rules. */
[hidden]{display:none!important}

.quantity-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.quantity-fields label{min-width:0;font-size:13px}.quantity-fields input{min-width:0}.order-position{display:grid;gap:12px}.need-quantity{font-size:18px;font-weight:700;margin-top:8px}
@media(max-width:380px){.quantity-fields{gap:5px}.quantity-fields label{font-size:11px}.quantity-fields input{padding:10px 6px}}

/* Order composition: individual cards, readable on phones and in both themes. */
.order-items{display:grid;gap:10px;margin:18px 0}
.order-item-card{min-width:0;border:1px solid var(--line);border-radius:14px;padding:16px;background:var(--paper)}
.order-item-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.order-item-title{min-width:0;font-size:18px;font-weight:700;line-height:1.4;overflow-wrap:anywhere}
.order-item-quantity{flex-shrink:1;max-width:100%;font-size:18px;font-weight:700;line-height:1.4;white-space:normal;overflow-wrap:anywhere;color:var(--green)}
.order-item-explanation{display:flex;flex-wrap:wrap;gap:4px 6px;border-left:3px solid var(--green);background:#eaf1eb;border-radius:0 8px 8px 0;padding:10px 12px;margin-top:12px;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.order-item-explanation strong{font-weight:700}.order-item-explanation span{white-space:pre-wrap;min-width:0}
body.dark .order-item-explanation{background:#2b4332}
.order-position>label{font-weight:700}.order-position>label textarea{font-weight:400;min-height:84px}
@media(max-width:480px){.order-card{padding:16px}.order-item-card{padding:13px}.order-item-heading{gap:10px}.order-item-title,.order-item-quantity{font-size:16px}.order-item-explanation{font-size:13px}}
@media(max-width:340px){.order-item-heading{flex-wrap:wrap}}
/* Compact access and warehouse layout */
#users .heading{margin-bottom:18px}#users .access-filters{grid-template-columns:2fr 1fr;margin:0 0 12px}.access-picker{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px}.access-picker button{max-width:180px}.access-person-caption{font-size:14px;color:var(--muted);margin:12px 0}.access-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.access-tabs button{font-weight:600;line-height:1.3}.access-tabs button.active{background:var(--green);color:var(--paper);border-color:var(--green)}body.dark .access-tabs button.active{color:#17241f}.access-pane{display:grid;gap:16px}.access-pane h2{margin:0}.access-pane p{margin:0}.access-pane .check{font-weight:400}.access-pane form{max-width:none}#access-main-rights,#access-order-rights,#access-planning-rights{display:grid;gap:14px}.access-save-bar{position:sticky;bottom:0;z-index:8;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px;margin:16px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.access-save-bar .primary{font-weight:700}.danger{color:#a43838;border-color:#e0bcbc}body.dark .danger{color:#ffb5b5;border-color:#995858}#finance-access-members{border-top:1px solid var(--line);padding-top:12px}.warehouse-toolbar{display:grid;gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;margin:18px 0}.warehouse-toolbar input,.warehouse-toolbar select{max-width:none}.warehouse-toolbar .primary{grid-column:1/-1;font-weight:700}.stock-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}.stock-card{min-width:0;overflow:visible}.stock-card-heading{display:flex;align-items:flex-start;gap:12px;justify-content:space-between}.stock-card-heading h3{font-size:20px;line-height:1.4;min-width:0;overflow-wrap:anywhere;margin:0}.stock-category{display:block;font-size:13px;color:var(--muted);margin-top:8px}.stock-balance{font-size:21px;font-weight:700;color:var(--green);margin:10px 0;white-space:normal}.stock-description{font-size:14px;line-height:1.5;margin:12px 0}.stock-description strong{display:block;font-size:13px}.stock-description p{white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0;color:var(--muted)}.stock-item-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.stock-item-actions button{flex:1;padding:9px 7px;min-height:44px;font-size:13px;font-weight:600;white-space:nowrap}.stock-card-menu{position:relative;padding:0;border:0;margin:0;flex-shrink:0}.stock-card-menu>summary{list-style:none;text-align:center;font-size:22px;font-weight:700;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:10px;line-height:38px}.stock-card-menu>summary::-webkit-details-marker{display:none}.stock-menu-actions{position:absolute;right:0;top:46px;z-index:5;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 20px #0002;padding:8px;display:grid;gap:6px;min-width:155px}.stock-group{padding:0;border:0;margin:18px 0}.stock-group>summary{display:flex;align-items:center;gap:10px;font-size:20px;padding:12px 0;border-bottom:1px solid var(--line)}.stock-group>summary::before{content:'›';font-size:25px}.stock-group[open]>summary::before{content:'⌄'}.stock-group>summary .small{margin-left:auto;font-weight:400}.archive-badge{font-size:12px;border-radius:8px;padding:3px 8px;background:#e9ece9;color:var(--muted)}body.dark .archive-badge{background:#34473b}.history-filters{display:grid;grid-template-columns:1fr 1fr;gap:12px}#stock-history-dialog{max-width:760px}.order-position-number{font-size:17px;margin:0}.order-item-title{font-weight:700}
@media(max-width:640px){.access-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.access-picker{grid-template-columns:minmax(0,1fr) auto;gap:8px}.access-picker button{font-size:12px;padding:10px;max-width:130px}#users .access-filters{grid-template-columns:1fr}.access-save-bar{flex-direction:column;align-items:stretch}.access-save-bar .primary{width:100%}.warehouse-toolbar{grid-template-columns:1fr}.stock-grid{grid-template-columns:1fr;gap:12px}.stock-card{padding:16px}.stock-card-heading h3{font-size:19px}.stock-balance{font-size:20px}.stock-group>summary{font-size:18px}.history-filters{grid-template-columns:1fr}.stock-item-actions{gap:6px}.stock-item-actions button{font-size:12px;padding:9px 5px}}



/* Compact icon toolbar and aligned catalogue actions. */
.header-tools{display:flex;flex-direction:column;align-items:flex-end;gap:7px;max-width:none}
.header-icon-buttons{display:flex;flex-wrap:nowrap;align-items:center;gap:6px}
.header-icon-buttons .header-icon-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;min-width:40px;height:40px;min-height:40px;max-width:40px;padding:8px;border-radius:12px;font-size:inherit;line-height:1;grid-column:auto}
.header-icon-button svg{display:block;width:22px;height:22px;pointer-events:none}
#detail-content .product-share{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;box-sizing:border-box;min-height:46px;margin-top:14px;padding:12px 16px;border-radius:12px;line-height:1.3}
.product-share svg{width:22px;height:22px;flex:0 0 22px;pointer-events:none}
#detail-content .product-detail-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:10px}
.product-detail-actions button{width:100%;min-width:0;min-height:46px;margin:0;padding:12px 10px;line-height:1.3}
@media(max-width:400px){header{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.header-tools{display:contents}#identity{grid-column:2;grid-row:1;max-width:none;text-align:right}.header-icon-buttons{grid-column:1/-1;justify-self:end}}

/* Compact section navigation. The existing utility controls stay visible. */
header{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px 12px}
header .header-tools{display:contents}
header #identity{grid-column:1/-1;grid-row:1;justify-self:end;max-width:none;text-align:right}
header .sections-toggle{grid-column:1;grid-row:2;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;min-height:40px;padding:8px 12px;font-size:14px}
.sections-toggle span{color:var(--green);font-size:20px;line-height:1}
header .header-icon-buttons{grid-column:2;grid-row:2;justify-self:end;min-width:0}
#primary-nav{display:flex;flex-wrap:nowrap;gap:6px;overflow:visible;margin:14px 0 24px;padding:0}
#primary-nav button,#primary-nav button:nth-child(n+5){flex:1 1 0;grid-column:auto;min-width:0;min-height:44px;padding:8px 6px;white-space:nowrap;font-size:13px;line-height:1.2}
#sections-dialog{max-width:470px}
#sections-title{margin:0 0 20px;padding-right:42px;font-size:23px}
#secondary-nav{display:grid;grid-template-columns:1fr;gap:8px;overflow:visible;margin:0;padding:0;clear:both}
#secondary-nav button,#secondary-nav button:nth-child(n+5){grid-column:auto;flex:none;min-height:46px;padding:12px;text-align:left;white-space:normal;font-size:15px}
.sections-toggle.active{border-color:var(--green)}
#orders .orders-heading{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px}
#orders .orders-heading h1{margin:0;min-width:0}
#orders .orders-heading .primary{align-self:center;flex:0 0 auto;min-height:44px;padding:9px 13px;white-space:nowrap;font-size:14px}
#orders .orders-description{margin:12px 0 18px}
#orders>.filters{margin-top:0;margin-bottom:12px}
@media(max-width:480px){header{gap:6px 8px}header .header-icon-buttons{gap:4px}header .header-icon-buttons .header-icon-button{flex-basis:36px;width:36px;min-width:36px;max-width:36px;padding:6px}header .sections-toggle{padding:8px 10px;font-size:13px}#primary-nav{gap:5px;margin:12px 0 22px}#primary-nav button{font-size:12px;padding:8px 4px}}
@media(max-width:360px){header .header-icon-buttons .header-icon-button{flex-basis:32px;width:32px;min-width:32px;max-width:32px;padding:5px}header .sections-toggle{font-size:12px;gap:6px;padding:8px}#primary-nav{gap:4px}#primary-nav button{font-size:11px;padding:8px 3px}}

/* Shared compact order and stock presentation. */
.order-card,.stock-card{padding:18px;border-radius:16px;min-width:0;overflow:visible}
.order-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.order-card-heading h3,.stock-card-heading h3{margin:0;font-size:21px;line-height:1.35;overflow-wrap:anywhere;min-width:0}
.order-status{display:inline-block;margin:4px 0 7px;padding:4px 8px;font-size:12px;line-height:1.3;border:1px solid var(--line);border-radius:8px;overflow-wrap:anywhere}
.order-status-waiting{color:var(--muted);background:transparent}
.order-status-partial,.order-status-closed{color:#805300;background:#fff0ce;border-color:#d6b26b}
.order-status-full{color:#24593f;background:#e4f2e8;border-color:#a5c9b0}
body.dark .order-status-partial,body.dark .order-status-closed{color:#ffd06a;background:#4d4024;border-color:#947536}
body.dark .order-status-full{color:#a1ddb9;background:#2b4d3d;border-color:#538269}
.order-card p.order-meta{font-size:14px;line-height:1.45;margin:3px 0;color:var(--muted)}
.order-items{display:grid;gap:0;margin:12px 0}
.order-item-card{padding:11px 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
.order-item-heading{gap:10px}.order-item-title,.order-item-quantity{font-size:15px;line-height:1.4}.order-item-title{flex:1 1 0;min-width:0}.order-item-quantity{flex:0 1 52%;text-align:right}
.order-item-card p.order-item-summary{font-size:13px;line-height:1.45;margin:5px 0 0;color:var(--muted)}
.order-item-card p.received-full{color:var(--green)}
.order-item-card p.order-receipt-date{font-size:12px;margin:4px 0 0;line-height:1.4}
.order-item-explanation{margin-top:7px;padding:6px 9px;font-size:13px;line-height:1.45}
.order-receipt-actions{display:flex;flex-wrap:nowrap;align-items:stretch;gap:10px;margin:12px 0 10px}
.order-receipt-actions>button{flex:1 1 0;min-width:0;min-height:44px;padding:10px 7px;font-size:13px;line-height:1.3;white-space:normal;overflow-wrap:anywhere;text-align:center;font-weight:600}
.short-delivery-button,.stock-action-remove{background:#20563b;border-color:#20563b;color:#f4fff8}
body.dark .short-delivery-button,body.dark .stock-action-remove{background:#397b59;border-color:#4e946f;color:#f4fff8}
.order-card>.check{font-size:14px;line-height:1.4;margin-top:10px;min-height:32px}
.order-card p.order-updated{margin:8px 0 0;line-height:1.4}.order-card p.order-edit-note{margin:6px 0 0;font-size:12px;line-height:1.4}
.order-card-menu>summary,.stock-card-menu>summary{border:0;border-radius:8px;min-width:36px;width:36px;min-height:40px;line-height:36px;font-size:25px}
.stock-card .stock-category{margin:4px 0 10px;line-height:1.4}
.stock-card .stock-balance{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:10px;margin:8px 0}
.stock-balance>span{font-size:14px;font-weight:400;color:var(--muted)}.stock-balance>strong{font-size:23px;line-height:1.3;text-align:right;overflow-wrap:anywhere;min-width:0}
.stock-card .stock-description{font-size:13px;line-height:1.45;margin:8px 0}.stock-card .stock-description p{margin:4px 0;line-height:1.45}
.stock-item-actions{display:flex;flex-wrap:nowrap;gap:10px;align-items:stretch;margin-top:12px}
.stock-item-actions>button{flex:1 1 0;min-width:0;min-height:44px;padding:9px 5px;font-size:13px;line-height:1.3;white-space:normal;overflow-wrap:anywhere}
.stock-action-add{background:var(--green);border-color:var(--green);color:#fff}body.dark .stock-action-add{color:#14251a}.stock-action-transfer{background:transparent;color:var(--green);border-color:var(--green)}
#warehouse .warehouse-heading{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px}#warehouse .warehouse-heading h1{margin:0}#warehouse .warehouse-heading .primary{align-self:center;flex:0 0 auto;min-height:44px;padding:9px 13px;font-size:14px;white-space:nowrap}
.warehouse-controls{display:flex;flex-wrap:nowrap;gap:10px;margin:12px 0}.warehouse-controls>button{flex:1 1 0;min-width:0;min-height:44px;padding:10px 7px;font-size:13px;white-space:normal;line-height:1.3}
.warehouse-toolbar{gap:10px;margin:12px 0;grid-template-columns:1fr}.warehouse-toolbar>label{font-size:12px;gap:5px}#warehouse-count{margin:8px 0}.stock-group{margin:12px 0}.stock-group>summary{font-size:19px;padding:9px 0}.stock-grid{gap:12px;margin:12px 0}
@media(max-width:480px){.order-card,.stock-card{padding:14px}.order-card-heading h3,.stock-card-heading h3{font-size:19px}.order-item-title,.order-item-quantity{font-size:14px}.order-receipt-actions>button{font-size:12px}.stock-item-actions{gap:8px}.stock-item-actions>button{font-size:12px}.stock-balance>strong{font-size:21px}}

/* Доступ и подписки на уведомления. */
.access-mode-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0 18px}.access-mode-tabs button{font-size:20px;font-weight:700}.access-mode-tabs .active{background:var(--green);color:var(--paper)}
#notifications-view>label,#notification-workspace>label{display:block;margin:14px 0}.notification-event-panel,.notification-table{margin-top:16px}.notification-table-head,.notification-location-row{display:grid;grid-template-columns:minmax(0,1fr) 94px 94px;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.notification-table-head{font-size:12px;font-weight:700}.notification-table-head>span:not(:first-child){text-align:center}.notification-location-row .check{justify-content:center;margin:0}.notification-location-row input{width:22px;height:22px}.notification-location-row small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.notification-location-name{overflow-wrap:anywhere}#notification-time{max-width:220px}#notification-workspace .panel{margin-top:14px}
@media(max-width:640px){.access-mode-tabs button{font-size:17px;padding:12px 6px}.notification-table-head,.notification-location-row{grid-template-columns:minmax(0,1fr) 78px 78px;gap:6px}.notification-table-head{font-size:11px}#notification-workspace .access-save-bar{align-items:stretch;flex-direction:column}}

/* Compact Needs cards retain the existing controls and permissions. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.needs-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 18px}.needs-heading h1{margin:0}.needs-heading button{white-space:nowrap;padding:11px 16px}
.needs-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.5fr);gap:10px}.needs-toolbar label{min-width:0}.needs-toolbar input,.needs-toolbar select{min-width:0}
.needs-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;background:#e8eee4;border-radius:14px;margin:14px 0 8px}.needs-summary span{color:var(--muted);font-size:14px}.needs-summary strong{font-size:20px;text-align:right}.needs-export-actions{display:flex;justify-content:flex-end;margin:8px 0 14px}.needs-export-actions button{font-size:12px;padding:8px 12px}
#needs-list{gap:12px}#needs-list .needs-card{padding:16px;margin:0} .need-card-content{display:grid;grid-template-columns:90px minmax(0,1fr);gap:14px}#needs-list .need-thumbnail{height:90px;width:90px;margin:0;border-radius:12px;font-size:35px}.need-card-body{min-width:0}
.need-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.need-card-heading h3{margin:0;font-size:21px;line-height:1.25;overflow-wrap:anywhere}.need-card-heading .need-card-menu{margin:0;padding:0;border:0;position:relative;flex-shrink:0}.need-card-menu .stock-menu-actions{z-index:3;right:0;top:38px}.need-category{color:var(--muted);font-size:12px;margin:4px 0 10px}.need-numbers{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-top:10px;border-top:1px solid var(--line)}.need-numbers span{font-size:13px;color:var(--muted)}.need-total{font-size:18px;line-height:1.3;text-align:right;color:var(--green)}.need-description{font-size:14px;line-height:1.4;margin:10px 0;white-space:pre-wrap;overflow-wrap:anywhere}.need-description-more{border:0;padding:0;margin:8px 0;font-size:13px}.need-description-more p{font-size:13px;line-height:1.5}.need-shops{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.need-shops .link{margin:0;padding:8px 12px;font-size:13px;min-height:36px;border-radius:9px;overflow-wrap:anywhere}.need-footer{font-size:11px;line-height:1.4;color:var(--muted);margin:10px 0 0}body.dark .needs-summary{background:#2b4332}
@media(max-width:480px){.needs-heading h1{font-size:27px}.needs-heading button{font-size:13px;padding:10px 12px}.needs-toolbar{grid-template-columns:minmax(0,1fr) 135px;gap:8px}.needs-toolbar input,.needs-toolbar select{font-size:13px;padding:10px 8px}.needs-summary{padding:13px}.needs-summary strong{font-size:18px}#needs-list .needs-card{padding:13px}.need-card-content{grid-template-columns:64px minmax(0,1fr);gap:10px}#needs-list .need-thumbnail{height:64px;width:64px}.need-card-heading h3{font-size:18px}.need-numbers{flex-wrap:wrap;gap:5px}.need-total{margin-left:auto;font-size:16px}.need-description{font-size:13px}.need-shops .link{padding:8px 10px;font-size:12px}}

.shared-stock-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.shared-stock-actions button{min-width:0}
.access-mode-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.access-mode-tabs button{flex:1;min-width:0}.notification-send-row{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.notification-send-row label{flex:1;min-width:130px}.notification-send-row button{margin-bottom:0}#access-overview-dialog{max-width:1060px}#overview-people{display:grid;gap:8px;max-height:240px;overflow:auto}.overview-options{margin:16px 0}.access-table-scroll{overflow:auto;max-height:420px;margin:16px 0;border:1px solid var(--line);border-radius:12px}.access-table-scroll table{border-collapse:separate;border-spacing:0;min-width:100%;font-size:13px}.access-table-scroll th,.access-table-scroll td{padding:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;white-space:nowrap;background:var(--paper)}.access-table-scroll thead th{position:sticky;top:0;z-index:2;font-weight:600}.access-table-scroll tr>:first-child{position:sticky;left:0;z-index:1;text-align:left;min-width:150px;max-width:220px;white-space:normal}.access-table-scroll thead tr>:first-child{z-index:3}.access-table-scroll th small{display:block;color:var(--muted);font-weight:400;margin-top:4px}.access-table-scroll td button{padding:6px 10px;font-size:12px}.visitor-status{color:var(--green);font-weight:600}#bot-visitors-started{width:auto;max-width:100%}@media(max-width:640px){.access-mode-tabs button{font-size:12px;padding:10px 7px}.notification-send-row button{font-size:13px}}
/* Keep the administrator's history buttons within narrow screens. */
header .header-icon-buttons{flex-wrap:wrap;justify-content:flex-end;max-width:100%}
.stock-history-filters{display:grid;gap:12px}.stock-filter-pair,.stock-summary-metrics{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.stock-filter-pair label{min-width:0}.stock-month-control{display:flex;gap:0}.stock-month-control input{min-width:0;flex:1;border-radius:0}.stock-month-control button{padding:8px 12px;font-size:24px}.stock-month-control button:first-child{border-radius:12px 0 0 12px}.stock-month-control button:last-child{border-radius:0 12px 12px 0}.stock-history-count-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.stock-history-count-row button{padding:7px 10px;color:var(--accent)}.stock-summary-item,.stock-event-card{border:1px solid var(--line);border-radius:14px;padding:14px;margin:10px 0;overflow-wrap:anywhere}.stock-summary-item>strong{display:block;margin-bottom:10px}.stock-summary-metrics strong{display:block;font-size:19px}.incoming{color:#88ddae}.outgoing{color:#c66e24}.dark .outgoing{color:#efb16a}.stock-event-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.stock-event-heading>div{min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.stock-event-amount{white-space:nowrap}.stock-event-badge{font-size:11px;border:1px solid var(--line);border-radius:20px;padding:3px 7px}.stock-event-badge.remove{color:#c66e24}.dark .stock-event-badge.remove{color:#efb16a}.stock-event-card p{margin:7px 0 0}.finance-col h4{overflow-wrap:anywhere}
/* Warehouse history: compact controls with a separate reset row. */
#stock-history-dialog{padding:22px;max-width:640px;scrollbar-gutter:stable}
#stock-history-dialog>h2{font-size:22px;line-height:1.25;margin:10px 38px 12px 0;clear:none}
#stock-history-dialog>.close{width:36px;min-height:36px;height:36px;padding:0;font-size:25px}
#stock-history-scope{font-size:14px;margin:0 0 18px}
#stock-history-dialog .stock-history-filters{gap:16px}
#stock-history-dialog label{font-size:14px;line-height:1.35}
#stock-history-dialog input,#stock-history-dialog select{font-size:14px;min-height:46px;padding:10px 12px}
#stock-history-dialog .stock-month-control{display:grid;grid-template-columns:40px minmax(0,1fr) 40px}
#stock-history-dialog .stock-month-control select{border-radius:0;text-align:center;min-width:0}
#stock-history-dialog .stock-month-control button{min-height:46px;font-size:22px;padding:6px;line-height:1}
#stock-history-dialog .stock-filter-pair{gap:12px}
#stock-history-dialog .stock-history-count-row{margin:18px 0 16px;gap:20px;min-height:40px;align-items:center}
#stock-history-dialog .stock-history-count-row p{margin:0;min-width:0;font-size:13px;line-height:1.4}
#stock-history-reset{flex:0 0 auto;border:0;background:transparent;color:var(--green);font-size:14px;font-weight:600;padding:8px 0 8px 12px;min-height:40px}
#stock-history-summary>h3{font-size:16px;line-height:1.4;margin:0 0 10px}
#stock-history-dialog .stock-summary-item{padding:14px;margin:10px 0;background:color-mix(in srgb,var(--green) 6%,var(--paper))}
#stock-history-dialog .stock-summary-metrics{gap:12px}.stock-summary-metrics>div{min-width:0}
#stock-history-dialog .stock-summary-metrics strong{font-size:20px;margin-top:5px;line-height:1.3}
#stock-history-dialog .stock-event-card{padding:13px;margin:10px 0}
#stock-history-dialog .stock-event-heading{font-size:15px;gap:8px}
#stock-history-dialog .stock-event-card p{font-size:12px;line-height:1.5}
#stock-history-dialog .stock-summary-help{border:0;border-radius:0;padding:0;margin:12px 0 18px;color:var(--muted)}
#stock-history-dialog .stock-summary-help summary{font-size:12px;min-height:24px}
#stock-history-dialog .stock-summary-help p{line-height:1.5;margin:8px 0}
#stock-history-more{width:100%;margin-top:12px;font-size:14px}
/* Contributions: align equal-height labels and restore compact amounts. */
#finance #finance-pairs>.panel{padding:16px;min-width:0}
#finance #finance-pairs h3{font-size:18px;line-height:1.3;margin:0 0 10px}
#finance .finance-person-status{font-size:13px;line-height:1.4;margin:0 0 14px}
#finance .finance-pair{gap:12px;align-items:start}
#finance .finance-col{min-width:0}
#finance .finance-col+.finance-col{padding-left:12px}
#finance .finance-col h4{font-size:13px;line-height:18px;margin:0 0 8px;min-height:36px}
#finance .finance-col>strong{font-size:18px;line-height:1.3;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
#finance .finance-entry{padding:10px 0;margin-top:10px}
#finance .finance-entry p{font-size:12px;line-height:1.4;margin:0 0 5px}
#finance .finance-entry>strong{font-size:15px;line-height:1.3}
#finance .finance-entry-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
#finance .finance-entry-actions button{flex:1 1 100px;width:auto;display:inline-flex;justify-content:center;align-items:center;font-size:11px;min-height:34px;padding:6px 8px;margin:0}
#finance #totals{gap:8px;margin:18px 0}
#finance #totals .metric{padding:12px 14px;min-width:0}
#finance #totals .metric span{font-size:12px;line-height:1.4}
#finance #totals .metric>strong{font-size:19px;line-height:1.35;margin:6px 0 0;white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
#finance #totals .finance-balance-metric .uncompensated-total{margin-top:10px;padding-top:10px;font-size:12px}
#finance #totals .finance-balance-metric .uncompensated-total strong{font-size:16px;white-space:normal;overflow-wrap:anywhere}
#finance .finance-member-summary .metric{padding:12px 14px}
#finance .finance-member-summary .metric strong{font-size:18px;line-height:1.35;white-space:normal;overflow-wrap:anywhere;margin-top:6px}
#finance #gumka-income-note{font-size:12px;line-height:1.5}
@media(max-width:640px){
 #finance .finance-col h4{min-height:54px}
 #finance .finance-col>strong{font-size:17px}
 #finance #totals .metric:not(.finance-balance-metric){display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}
 #finance #totals .metric:not(.finance-balance-metric)>strong{text-align:right;margin:0;font-size:18px}
 #stock-history-dialog{padding:18px;width:calc(100% - 24px);max-height:88dvh}
}
@media(max-width:360px){#finance .finance-col h4{font-size:12px}#finance .finance-col>strong{font-size:15px}#stock-history-dialog .stock-filter-pair{gap:8px}#stock-history-dialog select{padding:10px 6px;font-size:13px}}
@media(max-width:640px){
 #finance #totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 #finance #totals .metric:not(.finance-balance-metric){display:block;padding:11px 12px}
 #finance #totals .metric:not(.finance-balance-metric)>strong{font-size:16px;text-align:left;margin-top:6px}
 #finance #totals .finance-balance-metric{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;padding:12px}
 #finance #totals .finance-balance-metric>strong{font-size:17px;text-align:right;margin:0}
 #finance #totals .finance-balance-metric .uncompensated-total{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:4px;padding-top:8px}
 #finance #totals .finance-balance-metric .uncompensated-total strong{font-size:14px;margin:0}
}
@media(max-width:640px){
 #finance .finance-member-summary,#finance .finance-member-summary.by-month{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}
 #finance .finance-member-summary .metric{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;padding:11px 12px;gap:8px}
 #finance .finance-member-summary .metric span{font-size:11px;line-height:1.4}
 #finance .finance-member-summary .metric strong{font-size:16px;line-height:1.35;margin:0;white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
 #finance .finance-member-summary .finance-due-card{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;padding:12px}
 #finance .finance-member-summary .finance-due-card strong{text-align:right}
 #finance .finance-member-summary .finance-due-card small{grid-column:1/-1;font-size:11px;line-height:1.4}
}

#notification-position-panel>label{display:block;max-width:420px}#notification-position-tree{display:grid;gap:12px;margin-top:16px}.notification-position-category{padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.notification-position-category>.check:first-child{font-weight:700;margin-bottom:10px}.notification-position-item{padding-left:24px;margin:8px 0!important}#notification-position-tree input{flex-shrink:0;width:20px;height:20px}

#notification-position-tree .check{display:flex;gap:10px;align-items:center}#notification-position-tree .check>span:not(.notification-move-controls){flex:1;min-width:0;overflow-wrap:anywhere}.notification-move-controls{display:flex;gap:6px;flex-shrink:0}.notification-move-controls button{padding:5px 9px;min-width:32px;min-height:34px;margin:0;font-size:18px;line-height:1}.notification-move-controls button:disabled{opacity:.35}@media(max-width:420px){.notification-position-category{padding:10px}.notification-position-item{padding-left:12px}.notification-move-controls button{padding:5px 7px}}

.category-icon-row{display:flex;align-items:end;gap:10px;margin-top:12px}.category-icon-row label{flex:1;min-width:0;margin:0}.category-icon-row select{width:100%;margin-top:5px}.category-icon-row button{margin:0;white-space:nowrap;flex-shrink:0;padding:10px 12px}#categories-form>label{display:block;margin-top:12px}@media(max-width:420px){.category-icon-row{flex-wrap:wrap}.category-icon-row label{flex-basis:100%}.category-icon-row button{width:100%}}

#categories-list .record>label{display:block;margin-top:12px}#categories-list .record>label[hidden],#new-category-emoji-label[hidden]{display:none}#categories-list .record>label input{margin-top:5px;max-width:220px;font-size:24px}#new-category-emoji{font-size:24px}

#report-topic-dialog{max-width:720px;width:calc(100% - 24px)}#report-topic-dialog .actions{gap:12px;flex-wrap:wrap;margin-bottom:12px}#report-topic-dialog .actions>label{flex:1;min-width:180px}.report-topic-scope{padding:8px 0 0}.report-topic-warehouse>.check{font-weight:600}#report-topic-dialog .notification-category{padding:10px;margin-top:8px}#report-topic-dialog .notification-category summary{cursor:pointer;margin-bottom:8px}#report-topic-dialog .notification-send-row{gap:12px}#report-topic-status{overflow-wrap:anywhere}
#report-topic-warehouses .check{display:flex;align-items:center;gap:10px}#report-topic-warehouses .check>span:not(.notification-move-controls){flex:1;min-width:0;overflow-wrap:anywhere}#report-topic-warehouses .notification-category summary{display:flex;align-items:center;justify-content:space-between;gap:12px;overflow-wrap:anywhere}#report-topic-warehouses .notification-category summary .notification-move-controls{margin-left:auto}#report-topic-warehouses .notification-category .stack{padding-left:12px}

.topic-events-panel{display:grid;gap:12px}.topic-events-panel h3{margin:0}.topic-events-panel .check{display:flex;gap:10px;align-items:center}.topic-events-panel input[type=checkbox]{width:20px;min-height:20px;flex-shrink:0}.topic-events-panel .small{margin:0}#report-topic-order-warehouses,#report-topic-receipt-warehouses{margin-left:28px;padding:12px;border:1px solid var(--line);border-radius:10px;gap:10px}.topic-daily-panel{margin-top:0}.topic-daily-panel>summary{font-weight:600;margin-bottom:14px}.topic-daily-panel .notification-send-row{margin-top:12px}

#template-dialog{max-width:1000px}.template-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:22px}.template-editor{min-width:0}.template-toolbar{margin:16px 0 8px;gap:8px}.template-toolbar button{padding:8px 13px}.template-toolbar select{width:auto;max-width:100%}#template-body{min-height:260px;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:16px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}#template-body:focus{outline:2px solid var(--green);outline-offset:2px}.template-preview-panel{border:1px solid var(--line);border-radius:14px;padding:16px;min-width:0}.template-preview-panel h3{margin-top:0}#template-preview{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:12px;padding:16px;background:#e5eee5;line-height:1.6}body.dark #template-preview{background:#2b4332}.template-actions{margin-top:18px;gap:12px}#template-status{margin-top:12px}@media(max-width:720px){.template-layout{grid-template-columns:1fr;gap:16px}.template-actions button{flex:1;font-size:13px;padding:10px}#template-dialog{padding:18px}#template-body{min-height:220px}}

/* Compact role views: preserve all actions and readable mobile targets. */
.shell{padding:16px 20px}header{padding-bottom:10px;gap:5px 8px}header #identity{font-size:11px;line-height:16px}header .header-icon-buttons{flex-wrap:nowrap;gap:4px;max-width:none}header .header-icon-buttons .header-icon-button{width:36px;min-width:36px;max-width:36px;flex-basis:36px;height:40px;min-height:40px;padding:7px;border-radius:10px}header .sections-toggle{min-height:40px;padding:7px 10px;font-size:13px}header .header-icon-button svg{width:21px;height:21px}#primary-nav{margin:10px 0 18px;gap:5px}#primary-nav button{min-height:42px;font-size:12px;padding:8px 5px}h1{font-size:25px;letter-spacing:-.5px;margin:0 0 8px}h2{font-size:19px;margin:18px 0 10px}h3{font-size:17px}.muted{font-size:13px;line-height:1.45}.eyebrow{margin:0 0 8px;font-size:10px}.heading{gap:10px}.heading>button{min-height:42px;padding:9px 12px;font-size:13px}#orders .orders-description{margin:4px 0 12px}#orders>.filters{margin:0 0 8px}#orders>.filters select{max-width:none;width:100%}#order-search{font-size:14px;min-height:44px;padding:10px 12px}.order-status-filters{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 14px}.order-status-filters button{flex:1 0 90px;min-height:40px;padding:8px;font-size:12px}.order-status-filters button.active{background:var(--green);border-color:var(--green);color:white}body.dark .order-status-filters button.active{color:#14251a}.order-card{padding:12px}.order-card-heading h3{font-size:18px;margin:0}.order-meta{margin:5px 0;font-size:12px}.order-status{font-size:11px}.order-items{gap:4px;margin:10px 0}.order-item{padding:8px 0}.order-item-title,.order-item-quantity{font-size:13px}.order-updated,.order-edit-note{font-size:11px;margin:8px 0 0}.order-receipt-actions{gap:8px;margin:10px 0}.order-receipt-actions>button{min-height:44px;padding:8px;font-size:12px}.completed-order{padding:10px 12px;margin:0}.completed-order>summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;font-size:14px}.completed-order>summary:after{content:'⌄'}.completed-order[open]>summary:after{content:'⌃'}.completed-order>.order-card{margin:10px 0 0}.warehouse-controls{gap:6px;margin:10px 0}.warehouse-controls button{min-height:40px;font-size:12px;padding:8px 10px}.warehouse-toolbar{gap:8px;margin-top:12px}.warehouse-toolbar label{font-size:12px;gap:5px}.warehouse-toolbar input,.warehouse-toolbar select{font-size:14px;min-height:44px;padding:10px}.warehouse-view-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:8px 0 12px}#warehouse-rights{flex:1 1 150px;font-size:12px;margin:0;line-height:1.45}.warehouse-view-switch{display:flex;gap:4px}.warehouse-view-switch button{min-height:40px;font-size:12px;padding:8px 12px}.warehouse-view-switch button[aria-pressed=true]{background:var(--green);color:white}body.dark .warehouse-view-switch button[aria-pressed=true]{color:#14251a}.stock-list-mode .stock-grid{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.stock-list-mode .stock-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:10px 12px;border:0;border-bottom:1px solid var(--line);border-radius:0;margin:0}.stock-list-mode .stock-card:last-child{border-bottom:0}.stock-list-mode .stock-card-heading{grid-column:1;grid-row:1;margin:0}.stock-list-mode .stock-card-heading h3{font-size:15px;margin:0}.stock-list-mode .stock-category{grid-column:1;grid-row:2;font-size:11px;margin:0}.stock-list-mode .stock-balance{grid-column:2;grid-row:1/3;align-self:center;margin:0;padding:0;border:0;display:block}.stock-list-mode .stock-balance>span{display:none}.stock-list-mode .stock-balance>strong{font-size:16px;white-space:normal}.stock-list-mode .stock-description,.stock-list-mode .dialog-error,.stock-list-mode .stock-item-actions{grid-column:1/-1;margin:4px 0 0}.stock-list-mode .stock-description p{font-size:12px;margin:3px 0}.stock-list-mode .stock-item-actions{gap:6px;flex-wrap:wrap}.stock-list-mode .stock-item-actions>button{flex:1 1 90px;min-height:42px;font-size:12px;padding:8px}.stock-list-mode .stock-card-menu{margin:0}.finance-period-control{display:flex;align-items:center;gap:10px;font-size:13px;margin:12px 0}.finance-period-control>select{min-width:0;flex:1;font-size:14px;padding:10px;min-height:44px}#finance>.eyebrow{display:none}#finance>.muted{margin:0 0 12px}#finance .excel-actions{gap:8px;margin:10px 0}#finance .excel-actions button{font-size:12px;padding:9px;min-height:42px}#finance #totals{margin:12px 0}#finance .finance-member-section{margin-top:16px}#finance .finance-member-section h2{margin:0 0 6px;font-size:18px}#finance .finance-member-section>.muted{font-size:12px;margin:0 0 10px}#finance.role-compact-finance .finance-member-summary.by-month{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}#finance.role-compact-finance .finance-member-summary .metric{padding:10px;gap:6px}#finance.role-compact-finance .finance-member-summary .metric span{font-size:11px}#finance.role-compact-finance .finance-member-summary .metric strong{font-size:16px}#finance.role-compact-finance .finance-member-summary .finance-due-card{grid-column:1/-1;display:flex;flex-direction:row;align-items:center;flex-wrap:wrap}#finance.role-compact-finance .finance-due-card small{display:none}#finance-detail-toggle{margin:12px 0;padding:12px}#finance-detail-toggle>summary{font-size:13px}#finance-detail-content>.stack{margin-top:12px}
@media(max-width:640px){.shell{padding:12px}header{grid-template-columns:auto minmax(0,1fr)}header .header-icon-buttons .header-icon-button{width:32px;min-width:32px;max-width:32px;flex-basis:32px;padding:5px}header .header-icon-buttons{gap:3px}header .sections-toggle{padding:7px 8px;font-size:12px}#primary-nav button{font-size:12px}.warehouse-toolbar{grid-template-columns:1fr 1fr}.warehouse-toolbar>label:first-child{grid-column:1/-1}.order-card,.stock-card{padding:12px}.order-item-title,.order-item-quantity{font-size:13px}.order-card-heading h3,.stock-card-heading h3{font-size:18px}.stock-list-mode .stock-card-heading h3{font-size:15px}}
@media(max-width:360px){header .sections-toggle{grid-row:2;grid-column:1/-1;justify-self:start}header .header-icon-buttons{grid-row:3;grid-column:1/-1;justify-self:end}.shell{padding:10px}#primary-nav button{font-size:11px}#finance.role-compact-finance .finance-member-summary .metric{padding:8px}#finance.role-compact-finance .finance-member-summary .metric strong{font-size:14px}}
.order-item-card{padding:8px 0}.order-item-card p.order-item-summary{font-size:12px;margin-top:4px}.order-item-card p.order-receipt-date,.order-item-category{font-size:11px;margin:3px 0 0}.order-item-explanation{padding:7px 9px;margin-top:6px;font-size:12px}.stock-list-mode .stock-grid{overflow:visible}.stock-list-mode .stock-card:first-child{border-radius:12px 12px 0 0}.stock-list-mode .stock-card:last-child{border-radius:0 0 12px 12px}
#finance-recent-payments h2{font-size:17px;margin:16px 0 8px}#finance-recent-payments .record{padding:10px 0;font-size:13px;gap:10px}#finance-recent-payments .record>span{min-width:0;overflow-wrap:anywhere}#finance-recent-payments .record>strong{flex-shrink:0;font-size:14px}

/* Four quantity units stay in one row at every viewport width. */
.quantity-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:640px){.quantity-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.quantity-fields label{font-size:12px;white-space:nowrap}.quantity-fields input{width:100%;min-width:0;padding:9px 5px;font-size:16px;box-sizing:border-box}}

/* Warehouse usability additions. Existing zero balances remain visible. */
.field-error{color:var(--danger,#b42318);font-size:12px;line-height:1.4;margin:4px 0 0;grid-column:1/-1}
[aria-invalid=true]{border-color:var(--danger,#b42318)!important}
.low-stock-warning{color:#875500;background:#fff5d6;border-radius:8px;padding:8px 10px;font-size:12px;margin:8px 0}
body.dark .low-stock-warning{color:#ffd777;background:#493c19}
.stock-list-mode .low-stock-warning{grid-column:1/-1}
#warehouse-reset,#orders-reset{font-size:12px;min-height:36px;padding:6px 10px;margin:0 0 10px}
#warehouse-search-scope,#order-search-scope{margin:8px 0;color:var(--muted)}

/* Compact warehouse and order controls, including dynamically created menus. */
.stock-card-menu .stock-menu-actions{min-width:176px;width:176px;max-width:calc(100vw - 40px);padding:7px;gap:5px}
.stock-card-menu .stock-menu-actions>button{font-size:12px!important;line-height:1.25!important;min-height:38px!important;padding:8px 9px!important;border-radius:9px;white-space:nowrap}
#warehouse .warehouse-toolbar label,#orders .small{font-size:12px}
#warehouse .warehouse-toolbar input,#warehouse .warehouse-toolbar select,#orders input,#orders select{font-size:13px;padding:9px 10px;min-height:40px}
#warehouse .stock-card-heading h3,#orders .order-card-heading h3{font-size:16px}
#stock-category-dialog,#stock-minimum-dialog,#order-dialog,#receive-order-dialog{padding:16px;width:calc(100% - 28px);max-height:86dvh}
#stock-category-dialog h2,#stock-minimum-dialog h2,#order-dialog h2,#receive-order-dialog h2{font-size:18px;line-height:1.3;margin:0 28px 12px 0}
#stock-category-dialog form,#stock-minimum-dialog form,#order-dialog form,#receive-order-dialog form{gap:10px}
#stock-category-dialog label,#stock-minimum-dialog label,#order-dialog label,#receive-order-dialog label{font-size:12px;line-height:1.35;gap:5px}
#stock-category-dialog input,#stock-category-dialog select,#stock-minimum-dialog input,#order-dialog input,#order-dialog select,#order-dialog textarea,#receive-order-dialog input,#receive-order-dialog select{font-size:14px;padding:9px 10px;min-height:40px}
#stock-category-dialog button:not(.close),#stock-minimum-dialog button:not(.close),#order-dialog button:not(.close),#receive-order-dialog button:not(.close){font-size:13px;line-height:1.3;min-height:40px;padding:9px 10px}
#order-dialog .order-position{padding:12px;margin:0}#order-dialog .order-position h3{font-size:15px;margin:0 0 10px}
#order-dialog .quantity-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
#order-dialog .quantity-fields label{font-size:11px;white-space:nowrap;min-width:0}
#order-dialog .quantity-fields input{min-width:0;width:100%;font-size:14px;padding:8px 5px;box-sizing:border-box}
#stock-category-dialog p,#stock-minimum-dialog p,#order-dialog .small,#receive-order-dialog .muted{font-size:12px;line-height:1.45;margin:7px 0}
.notification-table-head,.notification-location-row{grid-template-columns:minmax(0,1fr) 58px 58px 74px}.notification-table-head{font-size:10px}.notification-location-row .low-subscription-label{font-size:10px;text-align:center;display:flex;flex-direction:column;gap:4px}
#notice{position:fixed;inset:auto;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;box-sizing:border-box;width:max-content;max-width:calc(100vw - 32px);max-height:50dvh;overflow:auto;z-index:2147483647;border:1px solid #d9b77e;box-shadow:0 8px 32px #0003;padding:16px;font-size:14px;line-height:1.5;text-align:center;white-space:pre-wrap;overflow-wrap:anywhere}
#notice::backdrop{background:transparent;pointer-events:none}
#notice .notice-message{display:block;max-width:380px}
#notice .notice-dismiss{display:block;margin:10px auto 0;font-size:12px;min-height:36px;padding:6px 14px;background:transparent;color:inherit;border:1px solid currentColor}
body.dark #notice{background:#3b3526;color:#ffe6b8;border-color:#8f7850}
.fund-custody{margin:16px 0;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}
.fund-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.fund-heading h2{font-size:17px;line-height:1.35;margin:0}.fund-heading button{font-size:12px;padding:7px 10px;min-height:36px;flex-shrink:0}
.fund-custody h3{font-size:13px;margin:16px 0 6px}.fund-money-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}.fund-money-row span{overflow-wrap:anywhere}.fund-money-row strong{white-space:nowrap}.fund-negative{color:#b12832}.fund-reconciliation{margin-top:14px}
body.dark .fund-negative{color:#ffadb4}#fund-custody-dialog{padding:18px}#fund-custody-dialog h2{font-size:18px;margin-right:25px}#fund-custody-dialog label,#fund-custody-dialog button:not(.close){font-size:13px}#fund-custody-dialog input,#fund-custody-dialog select{font-size:14px;padding:9px;min-height:40px}#fund-custody-dialog .panel{padding:12px;margin:10px 0;display:grid;gap:10px}
#finance.custody-only>:not(#fund-custody){display:none!important}
.fund-balance-total{margin:16px 0 8px;border:1px solid #9ec7ac;background:#edf7ef;border-radius:12px;padding:14px;display:grid;gap:7px}.fund-balance-total>span{font-weight:700;font-size:14px}.fund-balance-total>strong{font-size:24px;line-height:1.25;overflow-wrap:anywhere}.fund-balance-total p{margin:0}.fund-balance-total.negative{color:#9b2530;border-color:#d88e96;background:#fff0f1}
body.dark .fund-balance-total.positive{background:#243f30;border-color:#427654;color:#9ae4b2}body.dark .fund-balance-total.negative{background:#4a292e;border-color:#a35c67;color:#ffb1bd}
.fund-debt-source{margin:3px 0 12px;font-size:11px;line-height:1.45;color:var(--muted)}
