:root{--bg:#f1f4f9;--surface:#fff;--border:#e8ecf3;--text:#2c3040;--text-muted:#7a8494;--accent:#6366f1;--accent-hover:#4f46e5;--danger:#dc2626;--danger-hover:#b91c1c;--radius:14px;--shadow:0 1px 3px #1018280a, 0 2px 6px #1018280d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:16px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);text-align:left}#root{min-height:100vh}h1,h2{color:var(--text);text-align:left;margin:0 0 1rem;font-weight:600}h1{font-size:1.5rem}h2{margin-top:2rem;font-size:1.125rem}p{color:var(--text-muted);margin:0 0 1rem}a{color:var(--accent)}.container{max-width:640px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.navbar{padding:calc(.9rem + env(safe-area-inset-top,0px)) calc(1.25rem + env(safe-area-inset-right,0px)) .9rem calc(1.25rem + env(safe-area-inset-left,0px));background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.navbar a{color:var(--text);border-bottom:2px solid #0000;padding-bottom:.2rem;font-weight:500;text-decoration:none}.navbar a:hover{color:var(--accent)}.navbar a.active{color:var(--accent);border-bottom-color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1.5rem;padding:1.25rem}.field{text-align:left;flex-direction:column;gap:.4rem;margin-bottom:1.1rem;display:flex}label{color:var(--text-muted);font-size:.875rem;font-weight:600}input,select,textarea{font:inherit;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:10px;min-height:44px;padding:.7rem .85rem}textarea{resize:vertical;min-height:80px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);outline:none}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;min-height:44px;padding:.65rem 1.1rem;font-weight:500}button:hover{border-color:var(--accent)}button:disabled{opacity:.6;cursor:not-allowed}.link-btn{min-height:auto;color:var(--accent);text-align:left;text-underline-offset:2px;background:0 0;border:none;padding:0;font-weight:500;text-decoration:underline}.link-btn:hover{color:var(--accent-hover)}button[type=submit],.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}button[type=submit]:hover,.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{color:var(--danger);border-color:var(--danger);background:0 0}.btn-danger:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-row{flex-wrap:wrap;gap:.6rem;display:flex}.actions-row{white-space:nowrap;flex-wrap:nowrap;gap:.4rem;display:flex}.edit-block{flex-direction:column;gap:.75rem;padding:.25rem 0;display:flex}.edit-block .field{margin-bottom:0}.employee-picker{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);flex-wrap:wrap;gap:.5rem;padding:.6rem;display:flex}.employee-chip{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;width:auto;min-height:auto;padding:.3rem .8rem;font-size:.85rem;font-weight:500}.employee-chip.selected{background:var(--accent);border-color:var(--accent);color:#fff}.calendar-grid{grid-template-columns:repeat(7,minmax(110px,1fr));gap:.4rem;margin-bottom:1rem;display:grid}.day-cell{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-direction:column;gap:.3rem;min-height:90px;padding:.4rem;display:flex}.day-cell.is-today{border-color:var(--accent)}.day-cell.is-outside{opacity:.45}.day-cell-date{color:var(--text-muted);font-size:.8rem;font-weight:600}.assignment-chip{text-align:left;border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);cursor:pointer;border-radius:8px;padding:.25rem .4rem;font-size:.75rem;line-height:1.3;display:block}.assignment-chip.mode-montage{border-left:3px solid #d97706}.assignment-chip.mode-produktion{border-left:3px solid #059669}.assignment-chip.mode-planung{border-left:3px solid #2563eb}.assignment-chip.is-mine{background:color-mix(in srgb, var(--accent) 18%, var(--surface));border-color:var(--accent);font-weight:600}.day-cell-add{align-self:flex-start;min-height:auto;padding:.15rem .5rem;font-size:.75rem}.assignment-link{color:var(--accent);justify-content:center;align-items:center;gap:.25rem;margin:-.15rem 0;display:flex}.assignment-link:before,.assignment-link:after{content:"";background:var(--accent);opacity:.4;flex:1;height:1px}.collapsible-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.collapsible-header h2{margin:0}.collapse-toggle{flex-shrink:0;justify-content:center;align-items:center;width:32px;min-width:32px;height:32px;min-height:32px;padding:0;font-size:.9rem;line-height:1;display:flex}.picker-row{flex-wrap:wrap;gap:.6rem;margin-bottom:.6rem;display:flex}.tree-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.5rem 0;display:flex}.tree-spacer{flex-shrink:0;width:32px;display:inline-block}.icon-btn{flex-shrink:0;justify-content:center;align-items:center;width:36px;min-width:36px;height:36px;min-height:36px;padding:0;display:inline-flex}.picker-row select{flex:1;min-width:160px}.error-text{color:var(--danger);margin:.4rem 0 0;font-size:.9rem}.hint{color:var(--text-muted);margin:.4rem 0 0;font-size:.85rem}table{border-collapse:collapse;text-align:left;width:100%}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:.7rem .5rem}th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.8rem}.date-nav{align-items:center;gap:.6rem;margin-bottom:1.25rem;display:flex}.date-nav input[type=date]{flex:1;width:auto}.date-nav button{min-width:44px;padding:.65rem}.summary{color:var(--text-muted);margin-bottom:.75rem;font-size:.95rem}.summary strong{color:var(--text)}
