:root{--color-bg: #ffffff;--color-surface: #f4f6f9;--color-text: #10243e;--color-text-muted: #3b4b5e;--color-primary: #0b5cab;--color-primary-hover: #084a8c;--color-primary-text: #ffffff;--color-danger: #a4161a;--color-danger-hover: #80110f;--color-success: #1b5e20;--color-border: #4a5a6a;--color-focus: #c8102e;--font-base: 1.125rem;--font-lg: 1.5rem;--font-xl: 2rem;--font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--line-height: 1.5;--touch-min: 44px;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--radius: 10px;font-size:100%;font-family:var(--font-family);color-scheme:light}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);font-size:var(--font-base);line-height:var(--line-height);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1{font-size:var(--font-xl);line-height:1.2;margin:0 0 var(--space-md)}h2{font-size:var(--font-lg);line-height:1.25;margin:0 0 var(--space-sm)}p{margin:0 0 var(--space-md)}a{color:var(--color-primary);text-underline-offset:2px}a:hover{color:var(--color-primary-hover)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px;border-radius:4px}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:var(--touch-min);min-width:var(--touch-min);padding:var(--space-sm) var(--space-lg);font-size:var(--font-base);font-family:inherit;font-weight:600;line-height:1.2;color:var(--color-primary-text);background:var(--color-primary);border:2px solid transparent;border-radius:var(--radius);cursor:pointer}button:hover,.btn:hover{background:var(--color-primary-hover)}button:disabled,.btn:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{color:var(--color-primary);background:var(--color-bg);border-color:var(--color-primary)}.btn-secondary:hover{background:var(--color-surface);color:var(--color-primary-hover)}.btn-danger{background:var(--color-danger)}.btn-danger:hover{background:var(--color-danger-hover)}label{display:block;font-weight:600;margin-bottom:var(--space-xs)}input,select,textarea{width:100%;min-height:var(--touch-min);padding:var(--space-sm) var(--space-md);font-size:var(--font-base);font-family:inherit;color:var(--color-text);background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius)}input:focus,select:focus,textarea:focus{border-color:var(--color-primary)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-main{flex:1;width:100%;max-width:60rem;margin:0 auto;padding:var(--space-lg) var(--space-md) var(--space-xl)}.skip-link{position:absolute;left:-9999px;top:0;padding:var(--space-sm) var(--space-md);background:var(--color-primary);color:var(--color-primary-text);z-index:100}.skip-link:focus{left:var(--space-sm);top:var(--space-sm)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.app-header{background:var(--color-surface);border-bottom:2px solid var(--color-border)}.app-nav{width:100%;max-width:60rem;margin:0 auto;padding:var(--space-sm) var(--space-md);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-sm)}.nav-list{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-sm);margin:0;padding:0}.nav-list a{display:inline-flex;align-items:center;min-height:var(--touch-min);padding:var(--space-sm) var(--space-md);font-weight:600;text-decoration:none;color:var(--color-primary);border-radius:var(--radius)}.nav-list a:hover{background:var(--color-bg)}.nav-list a.active{background:var(--color-primary);color:var(--color-primary-text)}.nav-account{display:flex;align-items:center;gap:var(--space-md)}.nav-user{font-weight:600}.nav-roles{color:var(--color-text-muted);font-weight:400}.login-view{max-width:28rem}.login-form{display:flex;flex-direction:column;gap:var(--space-lg)}.form-row{display:flex;flex-direction:column}.form-error{margin:0;padding:var(--space-sm) var(--space-md);color:var(--color-danger);background:#fdecec;border:2px solid var(--color-danger);border-radius:var(--radius);font-weight:600}.catalog-category{margin:0 0 var(--space-xl)}.catalog-category-title{position:sticky;top:0;z-index:1;padding:var(--space-sm) var(--space-md);margin:0 0 var(--space-md);color:var(--color-primary-text);background:var(--color-primary);border-radius:var(--radius)}.product-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:var(--space-lg)}.product-cell{display:flex}.product-card{display:flex;flex-direction:column;width:100%;background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.product-card.on-list{border-color:var(--color-primary);box-shadow:inset 0 0 0 2px var(--color-primary)}.product-tap{display:flex;flex-direction:column;align-items:stretch;gap:0;width:100%;padding:0;color:var(--color-text);background:transparent;border:none;border-radius:0;text-align:center;cursor:pointer}.product-tap:hover{background:var(--color-bg)}.product-image{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:4 / 3;object-fit:cover;background:var(--color-bg)}.product-image-placeholder{color:var(--color-text-muted);background:repeating-linear-gradient(45deg,var(--color-bg),var(--color-bg) 10px,var(--color-surface) 10px,var(--color-surface) 20px)}.placeholder-initial{font-size:var(--font-xl);font-weight:700;color:var(--color-text)}.product-name{display:block;padding:var(--space-md);font-size:var(--font-base);font-weight:600;line-height:1.3}.product-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-md);border-top:2px solid var(--color-border)}.qty-btn{min-width:var(--touch-min);min-height:var(--touch-min);padding:var(--space-sm);font-size:var(--font-lg)}.product-qty{min-width:2.5rem;font-size:var(--font-lg);font-weight:700;text-align:center}.picking-empty{padding:var(--space-lg) var(--space-md);font-size:var(--font-lg);font-weight:600}.picking-section{margin:0 0 var(--space-xl)}.picking-section-title{position:sticky;top:0;z-index:1;padding:var(--space-sm) var(--space-md);margin:0 0 var(--space-md);color:var(--color-primary-text);background:var(--color-primary);border-radius:var(--radius)}.picking-section-picked .picking-section-title{background:var(--color-success)}.picking-count{font-weight:400}.picking-section-empty{color:var(--color-text-muted);padding:0 var(--space-md)}.picking-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-md)}.picking-row{display:flex;align-items:center;gap:var(--space-md);width:100%;min-height:var(--touch-min);padding:var(--space-md);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius);cursor:pointer;font-weight:600}.picking-row:hover{background:var(--color-bg)}.picking-check{width:var(--touch-min);height:var(--touch-min);min-width:var(--touch-min);min-height:var(--touch-min);margin:0;flex:0 0 auto;accent-color:var(--color-success);cursor:pointer}.picking-image{display:flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;flex:0 0 auto;object-fit:cover;background:var(--color-bg);border-radius:var(--radius)}.picking-image-placeholder{color:var(--color-text-muted);background:repeating-linear-gradient(45deg,var(--color-bg),var(--color-bg) 8px,var(--color-surface) 8px,var(--color-surface) 16px)}.picking-image-placeholder .placeholder-initial{font-size:var(--font-lg)}.picking-text{display:flex;flex-direction:column;gap:var(--space-xs)}.picking-name{font-size:var(--font-base);font-weight:600}.picking-qty{color:var(--color-text-muted);font-weight:600}.picking-row.is-picked{background:var(--color-bg);border-color:var(--color-success);opacity:.72}.picking-row.is-picked .picking-name{text-decoration:line-through}.picking-actions{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:2px solid var(--color-border)}.dialog-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-md);background:#10243e8c}.dialog{width:100%;max-width:32rem;padding:var(--space-lg);background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius);box-shadow:0 8px 32px #0000004d}.dialog h2{margin-bottom:var(--space-md)}.dialog-actions{display:flex;flex-wrap:wrap;gap:var(--space-md);justify-content:flex-end;margin-top:var(--space-lg)}.admin{max-width:40rem}.admin-card{display:flex;flex-direction:column;gap:var(--space-md);margin:0 0 var(--space-xl);padding:var(--space-lg);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius)}.admin-card h2{margin:0}.form-hint{margin:0;padding:var(--space-sm) var(--space-md);color:var(--color-text-muted);background:var(--color-bg);border:2px dashed var(--color-border);border-radius:var(--radius)}.form-success{margin:0;padding:var(--space-sm) var(--space-md);color:var(--color-success);background:#e8f5e9;border:2px solid var(--color-success);border-radius:var(--radius);font-weight:600}.form-progress{margin:0;padding:var(--space-sm) var(--space-md);color:var(--color-text);background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius);font-weight:600}.admin-card input[type=file]{padding:var(--space-sm);line-height:1.4}.send{max-width:40rem}.send-actions{margin:var(--space-lg) 0}.send-button{width:100%;min-height:3.5rem;font-size:var(--font-lg)}.send-success{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-lg)}.send-success-heading{margin:0;color:var(--color-success)}.send-success-text{margin:0;font-weight:600}.send-message{margin:0;padding:var(--space-md);color:var(--color-text);background:var(--color-bg);border:2px solid var(--color-success);border-radius:var(--radius);font-weight:400;white-space:pre-wrap;word-break:break-word}.send-recipients{margin:0;font-weight:600}.send-dryrun{margin:var(--space-sm) 0 0}.send-error{margin-top:var(--space-lg)}.catalog-admin-forms{display:flex;flex-wrap:wrap;gap:var(--space-md, 1rem);margin-bottom:var(--space-lg, 1.5rem)}.catalog-admin-forms .admin-card{flex:1 1 18rem}.catalog-category-title{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm, .5rem)}.catalog-admin-actions{display:inline-flex;gap:var(--space-sm, .5rem)}.btn-small{min-height:44px;padding:.25rem .75rem;font-size:1rem}.catalog-edit-input{width:100%;min-height:44px;font-size:1.125rem}.product-admin{display:flex;flex-wrap:wrap;gap:var(--space-sm, .5rem);padding:var(--space-sm, .5rem);border-top:1px dashed var(--color-border, #999)}.product-admin select{min-height:44px;font-size:1rem}.product-move{display:inline-flex}.product-card.drag-over{outline:3px dashed var(--color-focus, #005fcc);outline-offset:2px}.nav-badge{display:inline-block;min-width:1.6rem;margin-left:.4rem;padding:.05rem .45rem;border-radius:999px;background:var(--color-accent, #005fcc);color:#fff;font-size:1rem;font-weight:700;line-height:1.4;text-align:center}
