:root{--ink:#151515;--muted:#6f6f6f;--line:#e5e1d9;--paper:#fbfaf7;--white:#fff;--accent:#008b83;--accent-soft:#dff4f1;--danger:#b42318;--shadow:0 18px 60px rgba(26,23,17,.14)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}button,input,select{font:inherit}button{cursor:pointer;border:0;border-radius:8px;background:var(--accent);color:#fff;padding:10px 15px;font-weight:650}button:hover{filter:brightness(.96)}button.secondary{background:#f0eee9;color:var(--ink)}.hidden{display:none!important}.brand-mark{display:grid;place-items:center;width:50px;height:50px;margin:auto;border-radius:50%;background:#101010;color:#fff;font:700 24px Georgia,serif}.brand-mark.small{display:inline-grid;width:32px;height:32px;margin:0 10px 0 0;font-size:16px;vertical-align:middle}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 25% 20%,#fff 0,transparent 40%),linear-gradient(135deg,#f6f1e8,#e8f3f1)}.login-card{width:min(420px,100%);background:#fff;padding:38px;border-radius:18px;box-shadow:var(--shadow)}.login-card h1{text-align:center;margin:18px 0 5px}.login-card p{text-align:center;color:var(--muted);margin:0 0 28px}.login-card label,dialog label{display:grid;gap:7px;margin:15px 0;font-size:13px;font-weight:700}.login-card input,dialog input,dialog select{width:100%;padding:12px;border:1px solid #d8d4cc;border-radius:8px;background:#fff}.login-card button{width:100%;margin-top:8px}.error{color:var(--danger);min-height:20px;margin-top:12px;font-size:13px}
.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.top-actions{display:flex;align-items:center;gap:10px;font-size:13px}.live{color:var(--muted);white-space:nowrap}.live i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#aaa}.live.online{color:#246b37}.live.online i{background:#2fa84f;box-shadow:0 0 0 4px #dff4e4}.tabs{display:flex;gap:5px;padding:14px 24px 0;background:#fff;border-bottom:1px solid var(--line);overflow:auto}.tabs button{border-radius:8px 8px 0 0;background:transparent;color:var(--muted);padding:12px 18px}.tabs button.active{background:var(--accent-soft);color:var(--accent)}.month-nav{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px 0}.month-nav strong{min-width:150px;text-align:center;text-transform:capitalize;font:700 17px Georgia,serif}.month-nav button{padding:7px 12px}.toolbar{display:flex;justify-content:space-between;gap:20px;align-items:end;padding:18px 24px 24px}.toolbar h1{margin:0 0 3px;font-family:Georgia,serif;font-size:30px}.toolbar p{margin:0;color:var(--muted);font-size:13px}.toolbar-actions{display:flex;gap:10px}.toolbar input{width:min(360px,40vw);border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:#fff}.notice{margin:0 24px 12px;padding:10px 14px;border-radius:8px;background:#e8f3f1;color:#175e59;font-size:13px}.notice.error{background:#feeceb;color:var(--danger)}
.paint-delivered{--paint-color:#7aff3e}.paint-hq{--paint-color:#20a603}.paint-clarification{--paint-color:#fc7dbf}.paint-hint{--paint-color:#fd817b}.paint-error{--paint-color:#e6000e}.paint-yellow{--paint-color:#fed327}.color-toolbar{display:flex;align-items:center;gap:14px;margin:-12px 24px 12px;padding:10px 14px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 5px 18px rgba(30,25,17,.05)}.color-target{display:grid;min-width:185px}.color-target span,.color-toolbar small{color:var(--muted);font-size:11px}.paint-modes{display:flex;gap:3px;padding:3px;background:#f0eee9;border-radius:8px}.paint-modes button{padding:6px 10px;background:transparent}.paint-modes button.active{background:#222;color:#fff}.swatches{display:flex;align-items:center;gap:7px}.swatch{width:29px;height:29px;padding:0;border-radius:6px;background:var(--paint-color);border:2px solid rgba(0,0,0,.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}.swatch:hover{transform:translateY(-1px);filter:none}.swatch.clear{background:#fff;color:#777;font-size:20px;border-color:#aaa}.table-shell{margin:0 24px 40px;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:auto;max-height:calc(100vh - 310px);box-shadow:0 8px 28px rgba(30,25,17,.05)}table{border-collapse:separate;border-spacing:0;min-width:100%;width:max-content;font-size:12px}th{position:sticky;top:0;z-index:4;max-width:170px;min-width:98px;background:#777;color:#111;padding:12px 9px;text-align:center;white-space:normal;border-right:1px solid rgba(255,255,255,.23)}td{height:38px;max-width:230px;min-width:98px;padding:7px 9px;border-right:1px solid #e8d735;border-bottom:1px solid #e8d735;background:#fff;vertical-align:middle}td[contenteditable]:focus{outline:2px solid var(--accent);outline-offset:-2px;background:#fff}.check-cell{text-align:center}.check-cell input{width:18px;height:18px;accent-color:var(--accent)}.date-cell{border:0;background:transparent;max-width:130px}.actions-col{position:sticky;right:0;min-width:126px!important;background:#f7f5f0;box-shadow:-5px 0 8px rgba(0,0,0,.04)}th.actions-col{background:#555!important;color:#fff}.select-row{padding:5px 9px;font-size:11px}.history{background:transparent;color:#555;font-size:18px;padding:2px 7px}.saving{opacity:.55}.saved{box-shadow:inset 0 0 0 2px #35a75a}.empty{padding:55px;text-align:center;color:var(--muted)}
.color-popover{position:fixed;z-index:35;right:28px;bottom:24px;width:310px;padding:12px;background:#fff;border:1px solid #d7d2c9;border-radius:12px;box-shadow:0 16px 45px rgba(26,23,17,.24)}.color-popover header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.color-popover header div{display:grid}.color-popover small{color:var(--muted);font-size:11px}.color-popover header button{background:transparent;color:#555;padding:0 4px;font-size:22px}.color-popover .swatches{justify-content:space-between}.table-shell{max-height:calc(100vh - 250px)}
body[data-accent="couture"]{--accent:#9b8400;--accent-soft:#fff8bf}body[data-accent="couture"] th{background:#fff046}body[data-accent="originals"]{--accent:#9e245f;--accent-soft:#ffe0ef}body[data-accent="originals"] th{background:#fc7dbf}body[data-accent="extensions"]{--accent:#087f79;--accent-soft:#dff4f1}body[data-accent="extensions"] th{background:#66ffe4}body[data-accent="accessories"]{--accent:#087f79;--accent-soft:#dff4f1}body[data-accent="accessories"] th{background:#66ffe4}.source-gray-dark{background:#ccc}.source-gray-light{background:#d4d4d4}tbody tr.custom-row-color td{background:var(--paint-color)!important}tbody td.custom-cell-color{background:var(--paint-color)!important}tbody td.selected-cell{outline:3px solid #111!important;outline-offset:-3px;position:relative;z-index:2}
.drawer{position:fixed;z-index:50;top:0;right:0;height:100vh;width:min(480px,94vw);background:#fff;box-shadow:var(--shadow);transform:translateX(105%);transition:transform .22s ease}.drawer.open{transform:translateX(0)}.drawer header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.drawer header div{display:grid;gap:4px}.drawer header small{color:var(--muted)}.drawer header button,dialog header button{background:transparent;color:#333;font-size:26px;padding:4px}.drawer-body{padding:18px;overflow:auto;height:calc(100vh - 72px)}.backdrop{position:fixed;z-index:40;inset:0;background:rgba(20,18,14,.25)}.audit-item{padding:15px 2px;border-bottom:1px solid var(--line)}.audit-item>div{display:flex;justify-content:space-between;gap:10px}.audit-item time,.audit-item small{font-size:11px;color:var(--muted)}.audit-item b{display:block;font-size:13px;margin:7px 0}.audit-item p{display:flex;gap:8px;align-items:center;margin:5px 0;font-size:13px}.audit-item del{color:#9b3b34}.audit-item ins{color:#246b37;text-decoration:none}.activity-row,.user-row{display:flex;justify-content:space-between;gap:12px;padding:13px 2px;border-bottom:1px solid var(--line)}.activity-row span{flex:1}.activity-row small,.user-row small{display:block;color:var(--muted)}.user-row>span{font-size:12px;color:var(--muted)}button.wide{width:100%;margin-bottom:12px}
dialog{border:0;border-radius:14px;padding:0;width:min(460px,92vw);box-shadow:var(--shadow)}dialog::backdrop{background:rgba(20,18,14,.35)}dialog form{padding:22px}dialog header{display:flex;justify-content:space-between;align-items:center}dialog h2{margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}
@media(max-width:850px){.topbar{padding:0 12px}.top-actions #user-name{display:none}.month-nav{padding-left:12px;padding-right:12px}.toolbar{align-items:stretch;flex-direction:column;padding:14px 12px 18px}.toolbar-actions{width:100%}.toolbar input{width:auto;flex:1}.color-toolbar{margin:-8px 12px 10px;flex-wrap:wrap;gap:8px}.color-toolbar small{width:100%}.color-target{min-width:150px}.table-shell{margin:0 12px 25px;max-height:calc(100vh - 350px)}.tabs{padding-left:12px}.top-actions button{padding:8px}.topbar>div:first-child strong{display:none}}
@media(max-width:850px){.color-popover{right:12px;bottom:12px;width:calc(100vw - 24px)}.table-shell{max-height:calc(100vh - 280px)}}

/* Numbers-nahe Tabellenbedienung */
.toolbar input{width:min(330px,34vw)}
.toolbar select{border:1px solid var(--line);border-radius:9px;padding:9px;background:#fff}
.toolbar button:disabled{opacity:.4;cursor:default}
.sheet-note{display:flex;justify-content:space-between;gap:20px;margin:-10px 24px 14px;padding:11px 15px;border:1px solid #e27670;border-radius:9px;background:#fd817b;font-size:13px}
.sheet-note strong{font-size:18px}
th{padding:0;max-width:190px}
.sort-header{width:100%;min-height:52px;padding:10px 9px;border-radius:0;background:transparent;color:#111;font-size:12px}
.sort-header:hover{background:rgba(255,255,255,.2);filter:none}
th.actions-col{padding:10px 8px}
.override-cell{font-weight:650;text-align:center}
.date-with-note{display:grid;gap:2px}
.date-with-note small{font-size:10px;font-weight:700;color:#8b271f;white-space:nowrap}
.select-row.active{background:#222;color:#fff}
tbody tr.selected-row td{box-shadow:inset 0 2px #111,inset 0 -2px #111}
tbody tr.selected-row td:first-child{border-left:2px solid #111}
.frozen-column{position:sticky!important;z-index:3}.frozen-column.custom-cell-color{z-index:3}th.frozen-column{z-index:7}.frozen-column::after{content:"";position:absolute;right:-1px;top:0;bottom:0;width:1px;background:rgba(0,0,0,.08)}
.columns-popover{position:fixed;z-index:36;right:28px;top:185px;width:min(360px,calc(100vw - 24px));max-height:calc(100vh - 220px);overflow:auto;padding:13px;background:#fff;border:1px solid #d7d2c9;border-radius:12px;box-shadow:0 16px 45px rgba(26,23,17,.24)}.columns-popover header{position:sticky;top:-13px;display:flex;justify-content:space-between;align-items:center;background:#fff;padding:3px 0 8px}.columns-popover header button{background:transparent;color:#555;padding:0 4px;font-size:22px}.columns-popover label{display:flex;gap:9px;align-items:flex-start;padding:7px 1px;font-size:12px}.columns-popover input{margin-top:2px}.columns-popover>button{width:100%;margin-top:8px}
@media(max-width:850px){.toolbar-actions{flex-wrap:wrap}.toolbar input{min-width:190px}.sheet-note{margin:-6px 12px 12px}}

/* Tabellenmerkmale der Numbers-Quelldatei */
.source-gray-dark,.source-gray-light{font-weight:700;text-align:center}
tbody td.selected-cell{z-index:4}
tbody tr.selected-row th.row-number{box-shadow:inset 0 2px #111,inset 2px 0 #111,inset 0 -2px #111}
.row-number-head,.row-number{position:sticky!important;left:0!important;width:42px!important;min-width:42px!important;max-width:42px!important;padding:0 6px;text-align:center;background:#ecebe8!important;color:#666!important;border-right:1px solid #c8c5bf!important;z-index:9!important;font-variant-numeric:tabular-nums}
.row-number{height:38px;border-bottom:1px solid #d5d2cc;cursor:pointer;font-weight:500}
.row-number:hover,.row-number.active{background:#d8d6d1!important;color:#111!important}
.row-number-head{z-index:11!important}
.prepared-row td{color:#777}.prepared-row .actions-col{background:#faf9f6}
.row-number-col{width:42px}.actions-column{width:126px}th[data-field]{position:sticky}.column-resizer{position:absolute;z-index:12;top:0;right:-3px;width:7px;height:100%;cursor:col-resize;touch-action:none}.column-resizer:hover{background:rgba(0,0,0,.25)}
.info-row td{font-weight:700;text-align:center;white-space:normal}.info-row td[data-field="product"]{min-width:360px}.info-row .actions-col{background:var(--paint-color,#fd817b)!important}
tbody tr[data-row-key]>td,tbody tr[data-row-key]>th{height:var(--row-height,27px)}
.row-resizer{position:absolute;z-index:14;left:0;right:0;bottom:-4px;height:8px;cursor:row-resize;touch-action:none}.row-resizer:hover{background:rgba(0,0,0,.32)}
.grouped-order-row td{white-space:normal}.grouped-mixed{padding-top:3px!important;padding-bottom:3px!important;cursor:default}.grouped-mixed span{display:block;min-height:14px;padding:1px 0;border-bottom:1px dotted rgba(0,0,0,.18)}.grouped-mixed span:last-child{border-bottom:0}.group-toggle{display:block;margin:0 auto 3px;padding:3px 6px;font-size:9px;white-space:nowrap}.partially-selected-row td{box-shadow:inset 3px 0 #777}

/* Exakte kompakte Typografie der Numbers-Quelldatei (Helvetica Neue, 10 pt). */
#jobs-table{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:10px}
#jobs-table td{height:27px;padding:2px 6px;line-height:1.15}
#jobs-table .row-number{height:27px;font-size:10px}
#jobs-table .sort-header{min-height:75px;padding:5px 6px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:10px;line-height:1.18}
body[data-accent="originals"] #jobs-table .sort-header{min-height:59px}
#jobs-table .check-cell input{width:15px;height:15px;margin:0}
#jobs-table .select-row{padding:3px 6px;font-size:9px}
#jobs-table .history{font-size:15px;padding:1px 5px}
#jobs-table .info-row td{font-size:10px;line-height:1.2}
.toolbar h1{font-size:18px}.toolbar p{font-size:11px}.toolbar button,.toolbar input,.toolbar select,.month-nav button,.tabs button{font-size:12px}
.toolbar button.history-unavailable{opacity:.42}

/* Die gespeicherte Numbers-Zeilenhöhe muss die kompakte Standardhöhe
   überstimmen; die spätere Regel gewinnt auch für die Zeilennummer. */
#jobs-table tbody tr[data-row-key]>td,#jobs-table tbody tr[data-row-key]>th.row-number{height:var(--row-height,27px)}
