/* Shared interface: local system fonts, accessible controls, no external assets. */
:root{--ink:#1d1d1b;--muted:#555555;--accent:#b80510;--accent-dark:#93040c;--tint:#fff1f2;--line:#c4c4c2;--surface:#fff;--canvas:#f4f4f3;--brand:#e30613;--control-line:#777775;--focus:#005fcc;--radius:16px;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--canvas);font-size:16px;line-height:1.55}
*{box-sizing:border-box}
body{margin:0}
a{color:var(--accent);text-underline-offset:3px}
a:hover{color:var(--accent-dark)}
button,input,select,textarea{font:inherit}
button,.button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:46px;padding:.75rem 1.1rem;border:1px solid transparent;border-radius:10px;background:var(--accent);color:white;font-weight:650;line-height:1.3;text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s}
button:hover,.button:hover,.btn:hover{background:var(--accent-dark);color:white}
.button-secondary,.btn-default{background:white;color:var(--accent);border-color:var(--control-line)}
.button-secondary:hover,.btn-default:hover{background:var(--tint);color:var(--accent-dark);border-color:var(--accent)}
button:disabled{opacity:.55;cursor:not-allowed}
.icon{width:22px;height:22px;flex:none;vertical-align:middle}
:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
.brand:focus-visible,.account-menu>summary:focus-visible{outline-color:white}
.primary-nav :focus-visible{outline-color:var(--focus);outline-offset:-4px}
[hidden]{display:none!important}
.skip-link{position:fixed;top:-100px;left:1rem;z-index:50;padding:.8rem;background:white;border:2px solid var(--accent);border-radius:8px}
.skip-link:focus{top:1rem}
.site-header{background:#1d1d1b;color:white;border-top:4px solid var(--brand)}
.header-inner,.nav-inner{max-width:1160px;margin:auto;display:flex;align-items:center}
.header-inner{justify-content:space-between;gap:1rem;padding:1.2rem 2rem}
.brand{display:flex;align-items:center;gap:.8rem;color:white;text-decoration:none;font-size:1.15rem;font-weight:750;letter-spacing:-.02em}
.brand:hover{color:white}
.brand small{display:block;color:#e3e3e1;font-size:.72rem;font-weight:450;letter-spacing:.03em;margin-top:.15rem}
.brand-mark{display:grid;place-items:center;width:58px;height:48px;padding:5px;border:1px solid #91918e;border-radius:8px;background:white;flex:none}
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
.account-menu{position:relative}
.account-menu summary{color:white;display:flex;align-items:center;gap:.5rem;min-height:44px;padding:.55rem .8rem;cursor:pointer;border:1px solid #91918e;border-radius:10px;list-style:none}
.account-menu summary::-webkit-details-marker{display:none}
.account-panel{position:absolute;right:0;top:calc(100% + .6rem);z-index:10;width:260px;padding:1.15rem;color:var(--ink);background:white;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px #1d1d1b24}
.account-panel>a{display:block;padding:.65rem 0}
.account-panel form{margin-top:.6rem}
.account-panel button{width:100%}
.account-panel strong{overflow-wrap:anywhere}
.primary-nav{background:white;border-bottom:1px solid var(--line)}
.nav-inner{padding:0 2rem;gap:.5rem}
.primary-nav a{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:1rem 1.15rem;min-height:56px;text-decoration:none;color:var(--muted);font-weight:600;border-bottom:3px solid transparent}
.primary-nav a:hover{background:#faf5f5;color:var(--accent)}
.primary-nav a[aria-current]{color:var(--accent);border-bottom-color:var(--accent);background:var(--tint)}
main{max-width:1096px;margin:2rem auto;padding:2rem;background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 24px #1d1d1b10;min-width:0}
main:focus{outline:none}
.site-footer{padding:0 1rem 2rem;text-align:center;color:var(--muted);font-size:.78rem;letter-spacing:.04em}
.site-footer span{padding:0 .4rem}
h1,h2,h3{line-height:1.25;letter-spacing:-.025em;overflow-wrap:anywhere}
h1{font-size:clamp(1.6rem,3vw,2.2rem);margin:0 0 .7rem;font-weight:740}
h2{font-size:1.17rem;margin:1.5rem 0 .8rem}
h3{font-size:1.05rem}
p{margin:.7rem 0 1rem}
li,p,dd{overflow-wrap:anywhere}
small,.quiet,.helptext{color:var(--muted);font-size:.86rem}
.eyebrow{color:var(--accent);font-size:.73rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase;margin:0 0 .5rem}
.page-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.7rem}
.page-intro{color:var(--muted);margin:0;font-size:1rem}
.page-heading>.button{flex:none}
.back-link{display:inline-flex;align-items:center;min-height:44px;margin:-.6rem 0 .7rem;text-decoration:none;font-size:.88rem;font-weight:600}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1.8rem 0 1rem}
.section-heading h2{margin:0}
.count{display:inline-block;margin-left:.45rem;padding:.18rem .55rem;border-radius:6px;background:#eeeeec;color:var(--muted);font-size:.8rem;vertical-align:middle;letter-spacing:0}
.badge{display:inline-flex;align-items:center;align-self:flex-start;width:fit-content;padding:.25rem .65rem;border:1px solid var(--line);border-radius:6px;background:#f4f4f2;font-size:.75rem;font-weight:650;color:var(--muted);line-height:1.4}
.badge-adopted,.badge-ready{background:#edf8f0;border-color:#6b9176;color:#245c35}
label{display:block;font-size:.92rem;font-weight:650;margin-bottom:.4rem}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea{display:block;width:100%;max-width:100%;min-width:0;min-height:46px;padding:.75rem .85rem;color:var(--ink);background:white;border:1px solid var(--control-line);border-radius:9px;box-shadow:0 1px 2px #1d1d1b06}
textarea{min-height:90px;resize:vertical}
input::placeholder{color:#626260}
input[type=checkbox],input[type=radio]{width:20px;height:20px;accent-color:var(--accent);vertical-align:middle;margin:0 .5rem 0 0;flex:none}
.checkbox-label{display:flex;align-items:center;min-height:44px;margin:0;font-size:.86rem;font-weight:500}
input[type=file]{padding:.7rem;background:white}
input[type=file]::file-selector-button{margin:0 .8rem 0 0;padding:.5rem .7rem;border:0;border-radius:6px;background:var(--tint);color:var(--accent);font:inherit;font-size:.86rem;font-weight:600;cursor:pointer}
input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:#b54032;background:#fffaf8}
form{margin:0}
form>p{margin:1.1rem 0}
.form-panel{max-width:740px}
.form-panel h2:first-child{margin-top:0}
.form-actions{display:flex;gap:.8rem;align-items:center;margin-top:1.4rem}
.search-panel{background:#f6f6f4;border:1px solid var(--line);padding:1.25rem;border-radius:12px}
.search-row{display:flex;gap:.7rem;align-items:stretch}
.search-row input{flex:1}
.search-row button{flex:none}
.search-panel .checkbox-label{margin-top:.55rem}
.result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.card>.section-heading{margin-top:0}.card>h2:first-child{margin-top:0}
.card{border:1px solid var(--line);border-radius:12px;padding:1.25rem;margin:1rem 0;background:white}
.result-card{margin:0;transition:border-color .15s}
.result-card:hover{border-color:var(--accent)}
.result-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.result-heading>div{min-width:0}
.result-heading h2{margin:0;font-size:1.12rem}
.result-heading a{text-decoration:none;color:var(--ink)}
.result-heading a:hover{text-decoration:underline;color:var(--accent)}
.article-number{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.85rem;color:var(--muted);margin:.9rem 0}
.stock-badge{display:flex;flex-direction:column;align-items:center;min-width:72px;padding:.55rem .65rem;background:var(--tint);color:var(--accent-dark);border-radius:10px;font-size:1.5rem;font-weight:750;line-height:1.2;flex:none}
.stock-badge small{font-family:system-ui,sans-serif;font-size:.65rem;font-weight:550;color:inherit;margin-top:.3rem}
.stock-empty{background:#f3f3f1;color:var(--muted)}
.stock-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.stock-list li{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.75rem 0 0;font-size:.82rem}
.stock-list a{display:flex;align-items:flex-start;gap:.4rem;text-decoration:none;min-width:0}
.stock-list .icon{width:16px;height:20px}
.stock-list strong{white-space:nowrap;font-weight:600}
.empty-state{grid-column:1/-1;text-align:center;border:1px dashed #858582;border-radius:12px;padding:2.5rem 1rem;background:#fafaf8;color:var(--muted)}
.empty-state>.icon{width:32px;height:32px;color:var(--accent)}
.empty-state h2{color:var(--ink)}
.empty-state.compact{padding:1.25rem}
.empty-state.compact p{margin:0}
.inline-menu{position:relative}
.inline-menu summary{padding:.65rem .9rem;min-height:44px;cursor:pointer;font-size:.86rem;border:1px solid var(--control-line);border-radius:8px}
.menu-links{position:absolute;right:0;top:100%;min-width:170px;padding:.5rem;background:white;border:1px solid var(--line);border-radius:9px;box-shadow:0 8px 20px #1d1d1b18;z-index:3}
.menu-links a{display:block;padding:.7rem}
.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.action-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);border-radius:12px;background:#fafaf8;padding:1.5rem}
.action-card-accent{background:var(--tint);border-color:#d69a9e}
.action-icon{display:grid;place-items:center;width:44px;height:44px;background:white;border:1px solid var(--line);border-radius:12px;color:var(--accent);margin-bottom:.5rem}
.action-card>.badge{position:absolute;right:1.1rem;top:1.1rem;background:white}
.action-card h2{margin:.5rem 0}
.action-card p{margin:0 0 1.25rem;color:var(--muted)}
.action-card form,.action-card>.button{margin-top:auto}
.record-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.record-list>li+li{border-top:1px solid var(--line)}
.record-link{display:flex;align-items:center;gap:1rem;padding:1rem 1.2rem;text-decoration:none;color:var(--ink)}
.record-link:hover{background:#f6f6f4}
.record-icon{display:grid;place-items:center;color:var(--accent);background:var(--tint);width:42px;height:42px;border-radius:10px;flex:none}
.record-content{display:flex;flex:1;min-width:0;flex-direction:column;align-items:flex-start;gap:.2rem}
.record-content>span:not(.badge){font-size:.87rem;color:var(--muted)}
.record-content>.badge{margin-top:.25rem}
.pagination,nav[aria-label=Seiten]{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;margin:1.5rem 0 .2rem;font-size:.86rem}
.pagination:empty{display:none}
.pagination a,nav[aria-label=Seiten] a{padding:.6rem .9rem;min-height:44px;border:1px solid var(--line);border-radius:8px;text-decoration:none}
.notice,[data-server-message]{padding:1rem 1.1rem;background:#f5f5f3;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;font-size:.9rem}
.notice-success{background:#edf8f0;border-color:#b8ddc4;border-left-color:#398553}
.notice-warning,#offline-notice{background:#fff8e9;border-color:#ead29f;border-left-color:#a87813}
.notice-error,[role=alert],.errorlist{color:#9a3026}
.notice-error{background:#fff4f0;border-color:#ebc2b7;border-left-color:#b54032}
.errorlist{font-size:.88rem;margin:.5rem 0;padding-left:1.25rem}
.steps{display:flex;list-style:none;gap:1.5rem;padding:0 0 1.4rem;margin:0 0 1.7rem;border-bottom:1px solid var(--line);font-size:.85rem;color:var(--muted)}
.steps li{display:flex;align-items:center;gap:.5rem}
.steps span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#eeeeec;font-weight:650;flex:none}
.steps .is-current{color:var(--accent);font-weight:650}
.steps .is-current span{background:var(--accent);color:white}
.upload-zone{padding:1.5rem;border:1px dashed var(--control-line);border-radius:12px;background:#faf7f7;margin:1.4rem 0}
.upload-zone .action-icon{margin-bottom:.85rem}
.upload-zone p{margin:.5rem 0 1rem}
.quick-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem}
.quick-field{min-width:0}
.quick-field.wide{grid-column:1/-1}
.quick-field label{display:inline-block}
.quick-field>.quiet{float:right;font-size:.75rem}
.quick-field small{display:block;margin-top:.3rem}
.quick-photos{margin:1.3rem 0}
.quick-submit{position:sticky;bottom:0;padding:.8rem 0 calc(.8rem + env(safe-area-inset-bottom));background:white;border-top:1px solid var(--line);z-index:2;margin-top:1.2rem}
.quick-submit button{width:100%}
.batch-summary{display:flex;flex-wrap:wrap;gap:1rem 2rem;border:1px solid var(--line);border-radius:10px;background:#f6f6f4;padding:1rem 1.2rem;margin-bottom:1.2rem}
.batch-summary p{margin:0;min-width:0}
.batch-summary small{display:block;margin-bottom:.2rem}
.batch-row{border-left:4px solid #858582;padding:1.4rem;margin:1.2rem 0}
.batch-row h2{margin:0 0 1rem}
.batch-row:has(.errorlist){border-left-color:#b54032}
.batch-row:has(.badge-adopted){background:#f7fbf8;border-left-color:#55936e}
.batch-thumbnail{display:block;width:120px;max-height:160px;object-fit:contain;border:1px solid var(--line);border-radius:9px;background:#fafaf8;margin-bottom:1rem}
.batch-row label:has([name=selected]){display:flex;align-items:center;min-height:44px;background:var(--tint);padding:.7rem .9rem;border-radius:8px;margin:1rem 0;font-weight:550}
.batch-row details{margin:1.25rem 0}
details>summary{cursor:pointer;min-height:44px;padding:.6rem 0;color:var(--accent);font-weight:600}
.batch-row details[open]{padding-bottom:1rem;border-bottom:1px solid var(--line)}
.batch-row details p{margin:1rem 0}
.photo-grid{display:flex;flex-wrap:wrap;gap:1rem}
.photo-grid figure{margin:0;max-width:100%}
.photo-grid img,#photo-preview,#scan-video{max-width:100%;height:auto;border-radius:10px;border:1px solid var(--line)}
#scan-video{width:100%;max-height:55vh}
#photo-input{display:block;margin:1rem 0}
img{max-width:100%;height:auto}
.completion{max-width:620px;margin:1rem auto;text-align:center}
.completion-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--tint);color:var(--accent);margin:0 auto 1.2rem}
.completion-icon .icon{width:32px;height:32px}
.receipt-panel{border:1px solid var(--line);border-radius:12px;padding:1.4rem;margin:1.5rem 0;background:#f6f6f4}
.receipt-panel>strong{font-size:1.15rem}
.receipt-quantity{font-size:2.5rem;font-weight:750;letter-spacing:-.04em;margin:.8rem 0}
.receipt-quantity span{font-size:1rem;font-weight:500;letter-spacing:0}
.completion-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:.75rem}
.tree{list-style:none;padding:0}
.tree ul{list-style:none;padding-left:1.3rem;border-left:1px solid var(--line);margin-left:.4rem}
.tree li{padding:.6rem 0 .6rem .8rem}
.tree a{display:inline-block;min-height:44px;padding:.3rem 0;font-weight:650;text-decoration:none}
dt{font-size:.85rem;font-weight:650;color:var(--muted);margin-top:1rem}
dd{margin:.2rem 0 1rem}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:.7rem;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.auth-page main{max-width:520px;margin:3rem auto;padding:2rem}
.auth-page main h1{font-size:1.75rem}
.auth-page .btn{margin:.3rem .2rem .3rem 0}
.auth-page table,.auth-page tbody,.auth-page tr,.auth-page th,.auth-page td{display:block;width:100%}
.auth-page th{padding:.6rem 0 .25rem;border:0}
.auth-page td{padding:0 0 1rem;border:0}
.auth-page th label{margin:0}
.auth-page .btn-link{color:var(--accent);background:white;border-color:var(--line)}
.labels{display:grid;grid-template-columns:minmax(0,152.4mm);justify-content:center;gap:4mm}
.label{text-align:center;overflow-wrap:anywhere;background:white;color:black}
.label .label-preview{display:block;width:100%;height:auto;border:1px solid var(--line)}
@media(min-width:760px){.batch-row .quick-fields{grid-template-columns:1fr 2fr .65fr}.batch-row .batch-thumbnail{float:right;margin:0 0 1rem 1.5rem}.batch-row{display:flow-root}}
@media(max-width:1150px){main{margin:1.5rem}}
@media(max-width:720px){
 .header-inner{padding:1rem}.brand{font-size:1rem}.brand small{font-size:.65rem}.brand-mark{width:48px;height:40px;padding:4px}.account-menu summary{padding:.55rem}.account-menu summary .icon{width:18px}
 .nav-inner{padding:0;gap:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
 .primary-nav a{flex-direction:column;gap:.3rem;padding:.65rem .2rem;font-size:.72rem;min-height:64px}.primary-nav .icon{width:20px;height:20px}
 main{margin:1rem .65rem;padding:1.15rem;border-radius:12px}.page-heading{align-items:flex-start;flex-direction:column;gap:.8rem;margin-bottom:1.3rem}.page-heading>.button{font-size:.85rem}
 .result-grid,.action-grid{grid-template-columns:minmax(0,1fr)}.result-card,.card{padding:1rem}.search-panel{padding:1rem}.search-row{gap:.5rem}.search-row button{padding:.7rem}.search-row button .icon{display:none}
 .action-card{padding:1.2rem}.action-card .button,.action-card button{font-size:.9rem}
 .quick-fields{grid-template-columns:minmax(0,1fr);gap:.9rem}.quick-field.wide{grid-column:auto}
 .steps{gap:.7rem;font-size:.72rem;justify-content:space-between}.steps li{gap:.35rem}.steps span{width:23px;height:23px}
 .record-link{padding:1rem .8rem;gap:.7rem}.record-icon{width:34px;height:38px}.record-content strong{font-size:.94rem}
 .batch-row{padding:1rem}.batch-summary{padding:.9rem;gap:.7rem}.upload-zone{padding:1rem}
 .auth-page main{margin:1.5rem .8rem;padding:1.4rem}.completion-actions{flex-direction:column}.completion-actions button,.completion-actions>.button{width:100%}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@page{size:A4 portrait;margin:10mm}
@page box-label{size:6in 4in;margin:0}
@media print{
 header,.site-footer,.skip-link,.no-print{display:none!important}
 body{background:white;color:black}
 main{max-width:none;margin:0!important;padding:0!important;border:0;border-radius:0;box-shadow:none}
 main>p{display:none!important}
 .labels{display:block;page:box-label}
 .label{padding:0;break-inside:avoid;break-after:page}
 .label:last-child{break-after:auto}
 .label .label-preview{width:6in;height:4in;max-width:none;border:0}
 .quick-submit{position:static}
}
/* Kistenentnahme und Benutzerverwaltung */
.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}
.nav-inner{flex-wrap:wrap}.user-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1rem}.user-list .card{margin:0}.form-actions{flex-wrap:wrap}
.withdrawal-row{display:grid;grid-template-columns:44px 72px minmax(0,1fr) 125px;align-items:center;gap:.8rem;padding:1rem .5rem;border-bottom:1px solid var(--line);cursor:pointer}
.withdrawal-row.is-selected{background:var(--tint)}.withdrawal-check{display:flex;align-items:center;justify-content:center;min-height:48px;margin:0}.withdrawal-check input{width:28px;height:28px;margin:0}
.withdrawal-description{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}.withdrawal-description>span{font-size:.8rem}.withdrawal-photo img{width:72px;height:72px;object-fit:contain}.withdrawal-quantity label{font-size:.8rem;margin:.3rem 0}.withdrawal-quantity input{min-height:48px}
@media(max-width:720px){.nav-inner{grid-template-columns:repeat(3,minmax(0,1fr))}.withdrawal-row{grid-template-columns:36px 52px minmax(0,1fr);gap:.5rem}.withdrawal-photo img{width:52px;height:60px}.withdrawal-quantity{grid-column:2/-1;display:flex;gap:.5rem;align-items:center;justify-content:space-between}.withdrawal-quantity input{width:85px!important}.withdrawal-quantity>span{font-size:.85rem}.withdrawal-quantity label{margin:0}}
