/* The base: page, text, links, fields, tables — every staff page (design system, docs/dizain.md). */
@layer base{
*{box-sizing:border-box}
body{margin:0}
a{text-underline-offset:3px}
a:hover{color:var(--text)}
button{font:inherit;text-align:center}
button:hover{background:var(--accent);color:var(--on-accent)}
table{width:100%;border-collapse:collapse;text-align:left}
th{background:var(--bg-subtle);padding:13px 24px;color:var(--text-3);font-weight:750;text-transform:uppercase;letter-spacing:.5px;border-block:1px solid var(--line)}
td{padding:20px 24px;border-bottom:1px solid var(--line-row);vertical-align:top;font-size:14px}
tr:last-child td{border-bottom:0}
td strong,td small{display:block}
td strong{font-weight:600}
td small{margin-top:4px}
label{display:block;font-weight:600;font-size:13px;margin:0 0 7px}
input,select,textarea{display:block;width:100%;font:inherit;padding:10px 12px;border:1px solid var(--line-field);background:var(--bg-card)}
textarea{resize:vertical}
input[type=checkbox]{height:18px;flex-shrink:0}
form button{margin-top:12px}
details{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}
summary{cursor:pointer;font-size:14px;font-weight:650;padding:2px 0}
details[open]>summary{margin-bottom:14px}
details form{margin-top:14px}
@media(max-width:1000px){
td,th{padding-left:16px;padding-right:16px}
}
/* Without JavaScript (owner, 24.10.2026): `data-nojs-show` on a hidden element shows it when scripting is off — a part
   of a form that JavaScript shows by choice (the intake's return and „рано“ fields). With JavaScript nothing sets
   --hidden-display, so [hidden] hides as before; what is hidden inside such an element stays hidden. */
[hidden]{display:var(--hidden-display,none)!important}
@media (scripting:none){
[data-nojs-show]{--hidden-display:block}
[data-nojs-show] :not([data-nojs-show]){--hidden-display:none}
}
button:disabled{cursor:not-allowed;opacity:.55}
html{scroll-behavior:smooth}
section[id],details[id]{scroll-margin-top:20px}
a:hover{color:var(--text)}
button:hover{background:var(--bg-inverse)}
label{font-size:14px;color:var(--text)}
a:hover{color:var(--text)}
h1{overflow-wrap:anywhere}
small,th,td small{font-size:13px}
button:hover{background:var(--bg-inverse);color:var(--on-inverse)}
input,select,textarea{min-width:0;max-width:100%}
input[type=radio],input[type=checkbox]{width:auto;display:inline-block}
summary{min-height:32px}
.erp-shell{--erp-frame:1720px;display:grid;grid-template-columns:220px minmax(0,1fr);grid-template-rows:auto 1fr auto;min-height:100vh}
@media(max-width:1179px){
.erp-shell{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:767px){
button,summary{min-height:44px}
.erp-shell table{min-width:0}
}
.erp-shell input,.erp-shell select,.erp-shell textarea{font-size:16px}
@media print{
.erp-shell{display:block}
}
/* Batch 7 visual foundation. Loaded after app.css on every page.
   Colour always means something: the status pairs below. Everything else is neutral. */
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/ibm-plex-sans-cyrillic-400-normal.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/ibm-plex-sans-latin-400-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500 600;font-display:swap;src:url('fonts/ibm-plex-sans-cyrillic-600-normal.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500 600;font-display:swap;src:url('fonts/ibm-plex-sans-latin-600-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:650 800;font-display:swap;src:url('fonts/ibm-plex-sans-cyrillic-700-normal.woff2') format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:650 800;font-display:swap;src:url('fonts/ibm-plex-sans-latin-700-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500 800;font-display:swap;src:url('fonts/ibm-plex-mono-latin-600-normal.woff2') format('woff2')}
body{font:15px/1.5 'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif}
input,select,textarea,button{font-family:inherit}
a{color:var(--text);text-decoration-color:var(--text-3)}
a:hover{color:var(--text);text-decoration-color:var(--text)}
button{font-weight:600}
button:hover{background:var(--bg-inverse);border-color:var(--line-strong);color:var(--on-inverse)}
input,select,textarea{border-color:var(--line-field);border-radius:10px;min-height:44px;color:var(--text)}
input[type=checkbox],input[type=radio]{min-height:0}
summary{color:var(--text)}
/* 1.24 (owner, 21.10.2026): one text hierarchy for every theme — page (h1) > zone (.zone-title, the dashboard's zones)
   > block (h2, card and section titles) > text (body; h3/h4 = text in bold) > secondary (small, .ds-meta). */
body{background:var(--bg-page);color:var(--text);font-size:var(--type-text);font-weight:var(--type-text-weight);line-height:var(--type-text-line);-webkit-font-smoothing:antialiased}
h1{font-size:var(--type-page);line-height:var(--type-page-line);font-weight:var(--type-page-weight);letter-spacing:-.4px;margin:0 0 var(--space-1)}
.zone-title{font-size:var(--type-zone);line-height:var(--type-zone-line);font-weight:var(--type-zone-weight);letter-spacing:-.2px;margin:var(--type-zone-space) 0 var(--space-3)}
h2{font-size:var(--type-block);line-height:var(--type-block-line);font-weight:var(--type-block-weight);letter-spacing:-.1px;margin:0 0 var(--type-block-space)}
h3,h4{font-size:var(--type-text);line-height:var(--type-text-line);font-weight:600;letter-spacing:0;margin:0 0 var(--space-1)}
small,td small{font-size:var(--type-meta);line-height:var(--type-meta-line);font-weight:var(--type-meta-weight);color:var(--text-2)}
p{margin:0 0 8px}
.erp-shell{--erp-frame:var(--width-list)}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--line-field)!important;outline-offset:2px!important;box-shadow:0 0 0 4px var(--line)}
button,input[type=submit]{display:inline-flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;min-height:var(--control-h);height:auto;margin:0;padding:6px 16px;border-radius:var(--radius-control);border:1px solid var(--button-primary-bg);background:var(--button-primary-bg);color:var(--button-primary-text);font-family:inherit;text-decoration:none;vertical-align:middle;cursor:pointer;box-shadow:none}
button:hover{background:var(--button-primary-bg-hover);border-color:var(--button-primary-bg-hover);color:var(--on-accent)}
button:disabled{opacity:.5;cursor:not-allowed}
input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),select{min-height:var(--control-h);border-radius:var(--radius-control);border:1px solid var(--line-field);padding-top:6px;padding-bottom:6px;font-size:15px;box-sizing:border-box}
input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover{border-color:var(--line-field)}
textarea{border-radius:var(--radius-control);border:1px solid var(--line-field)}
:root{--zone-work:var(--accent-ink);--zone-work-tint:var(--accent-soft);--zone-service:var(--text-2);--zone-service-tint:var(--bg-subtle);--zone-admin:var(--text-3);--zone-admin-tint:var(--bg-subtle)}
body{background:var(--bg-subtle)}
@media(min-width:1180px){
.erp-shell{background:linear-gradient(to right,var(--side-bg) 0,var(--side-bg) 220px,var(--bg-page) 220px)}
}
[data-block=my_work]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m3 6 2 2 4-4M12 6h9M3 14l2 2 4-4M12 14h9M12 21h9'/%3E%3C/svg%3E")}
[data-block=service_mine]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M14 3a6 6 0 0 0-7 7l-5 5 5 5 5-5a6 6 0 0 0 8-7l-4 4-4-4 4-4Z'/%3E%3C/svg%3E")}
[data-block=service_summary]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 3v18h18M7 15v3M12 10v8M17 6v12'/%3E%3C/svg%3E")}
[data-block=refunds]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 6h18v12H3ZM12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6'/%3E%3C/svg%3E")}
[data-block=signals]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 3 2 21h20ZM12 9v5M12 17v1'/%3E%3C/svg%3E")}
[data-block=whats_new]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 2v4M12 18v4M4.9 4.9l2.8 2.8M16.3 16.3l2.8 2.8M2 12h4M18 12h4'/%3E%3C/svg%3E")}
:root{--zone-work-tint:var(--zone-bg);--zone-service-tint:var(--zone-bg);--zone-admin-tint:var(--zone-bg)}
.erp-shell input[type=radio],.erp-shell input[type=checkbox]{accent-color:var(--accent-ink)}
@media(max-width:767px){
/* 1.24.5 (owner, 21.10.2026: every screen on a 390 px phone without too small buttons): a folding section's title is
   at least 44 px high to press — menus („Още действия“) and buttons keep their own size */
details:not([data-menu])>summary:not(.button){min-height:44px;padding-block:var(--space-2)}
}
[data-block=couriers]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M2 5h12v12H2ZM14 9h4l4 5v3h-8'/%3E%3C/svg%3E")}
[data-block=morning]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4'/%3E%3C/svg%3E")}
/* The robot of goal 5 (29.10.2026): on a phone a box or a choice is easy to press — 32 px, its label a full line around it
   (settings, rights, the kits, refunds…); one rule for every old form. The intake keeps its own (a risky screen). */
@media(max-width:719px){
body:not(:has(.unified-intake)) input[type=checkbox],body:not(:has(.unified-intake)) input[type=radio]{width:32px;height:32px;min-height:32px}
body:not(:has(.unified-intake)) label:has(> input[type=checkbox]),body:not(:has(.unified-intake)) label:has(> input[type=radio]){display:inline-flex;align-items:center;gap:var(--space-2);min-height:32px}
}
}
