:root{--color-bg:#f1f5f9;--color-surface:#fff;--color-surface-2:#f8fafc;--color-border:#e2e8f0;--color-text:#0f172a;--color-text-muted:#64748b;--color-primary:#128d7b;--color-primary-dark:#0e6f61;--color-primary-contrast:#fff;--color-input-bg:#fff;--color-danger:#991b1b;--color-danger-border:#fecaca;--color-danger-surface:#fef2f2;--color-warn-text:#9a3412;--color-warn-border:#fed7aa;--color-warn-surface:#fff7ed;--color-success-text:#047857;--color-success-border:#a7f3d0;--color-success-surface:#ecfdf5;--color-sidebar:#0f172a;--color-sidebar-text:#cbd5e1;--color-sidebar-active:#2dd4bf;--ampel-gruen:#16a34a;--ampel-gelb:#d97706;--ampel-rot:#dc2626;--prio-niedrig:#64748b;--prio-mittel:#0284c7;--prio-hoch:#d97706;--prio-kritisch:#dc2626;--radius:10px;--shadow:0 1px 2px rgba(15,23,42,.06),0 4px 12px rgba(15,23,42,.05);--font:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color-scheme:light}:root[data-theme=dark]{--color-bg:#0b1220;--color-surface:#101a2e;--color-surface-2:#16233b;--color-border:#24334d;--color-text:#e2e8f0;--color-text-muted:#94a3b8;--color-input-bg:#16233b;--color-danger:#f87171;--color-danger-border:#7f1d1d;--color-danger-surface:#2a1416;--color-warn-text:#fbbf24;--color-warn-border:#4a3814;--color-warn-surface:#2a2110;--color-success-text:#34d399;--color-success-border:#14432f;--color-success-surface:#10241c;--color-sidebar:#060c17;--color-sidebar-text:#cbd5e1;--shadow:0 1px 2px rgba(0,0,0,.45),0 6px 16px rgba(0,0,0,.4);color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text);font-size:15px;line-height:1.5}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{color:var(--color-text);margin:0 0 .5rem}.app-shell{--sidebar-w:262px;display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;transition:grid-template-columns .18s cubic-bezier(.4,0,.2,1)}.app-shell.collapsed{--sidebar-w:66px}.sidebar{background:var(--color-sidebar);color:var(--color-sidebar-text);display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;align-self:start;height:100vh;overflow-x:hidden}.sidebar .brand{display:flex;align-items:center;gap:.6rem;padding:1rem 1rem .85rem;color:#fff;border-bottom:1px solid hsla(0,0%,100%,.06)}.sidebar .brand img{height:24px;width:auto}.brand-text{display:flex;flex-direction:column;min-width:0;line-height:1.2}.brand-name{font-weight:700;font-size:1rem}.brand-name,.brand-text small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-text small{color:var(--color-text-muted);font-size:.7rem}.nav{flex:1 1;overflow-y:auto;overflow-x:hidden;padding:.5rem .6rem;display:flex;flex-direction:column;gap:.05rem}.nav-section{font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:#64748b;font-weight:700;padding:.85rem .75rem .35rem;white-space:nowrap;overflow:hidden;border-top:1px solid transparent}.nav-icon{flex:0 0 auto;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center}.nav-label{transition:opacity .18s ease}.nav-label,.nav-link{white-space:nowrap;overflow:hidden}.nav-link{display:flex;align-items:center;gap:.6rem;padding:.55rem .75rem;margin:1px 0;border-radius:8px;color:var(--color-sidebar-text);font-size:.9rem;border-left:3px solid transparent}.nav-link:hover{background:hsla(0,0%,100%,.06);color:#fff;text-decoration:none}.nav-link.active{background:rgba(20,184,166,.16);color:#fff;border-left-color:var(--color-sidebar-active)}.sidebar-foot{position:relative;padding:.6rem;border-top:1px solid hsla(0,0%,100%,.07)}.foot-row{gap:.4rem}.foot-row,.who{display:flex;align-items:center}.who{gap:.55rem;flex:1 1;min-width:0;background:none;border:none;cursor:pointer;text-align:left;padding:.3rem;border-radius:8px;color:var(--color-sidebar-text);font:inherit}.who:hover{background:hsla(0,0%,100%,.06)}.avatar{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:var(--color-primary);color:#fff;display:grid;place-items:center;font-size:.85rem;font-weight:700}.who-text{display:flex;flex-direction:column;min-width:0;line-height:1.25}.who-name{font-size:.82rem;font-weight:600;color:#fff}.who-name,.who-text small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.who-text small{font-size:.68rem;color:var(--color-text-muted)}.sidebar-toggle{flex:0 0 auto;width:30px;height:30px;display:grid;place-items:center;border-radius:8px;border:1px solid hsla(0,0%,100%,.1);background:hsla(0,0%,100%,.04);color:var(--color-sidebar-text);cursor:pointer}.sidebar-toggle:hover{background:hsla(0,0%,100%,.12);color:#fff}.user-menu{position:absolute;bottom:calc(100% + 6px);left:.6rem;right:.6rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:var(--shadow);padding:6px;z-index:50}.menu-item{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;padding:.5rem .6rem;background:none;border:none;border-radius:7px;cursor:pointer;font:inherit;font-size:.88rem;color:var(--color-text)}.menu-item:hover{background:var(--color-surface-2);text-decoration:none}.menu-item-danger{color:var(--color-danger)}.nav-tip{transform:translateY(-50%);background:var(--color-sidebar);color:#fff;padding:.35rem .6rem;border-radius:6px;font-size:.8rem;white-space:nowrap;z-index:1001;pointer-events:none;border:1px solid hsla(0,0%,100%,.12);box-shadow:var(--shadow);animation:navTipIn .1s ease}@keyframes navTipIn{0%{opacity:0}to{opacity:1}}@media (min-width:861px){.app-shell.collapsed .brand-text,.app-shell.collapsed .nav-label,.app-shell.collapsed .who{display:none}.app-shell.collapsed .sidebar .brand{justify-content:center;padding-left:0;padding-right:0}.app-shell.collapsed .nav-section{color:transparent;border-top-color:hsla(0,0%,100%,.08)}.app-shell.collapsed .foot-row{justify-content:center}}.route-fade{animation:routeFade .18s ease}@keyframes routeFade{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.route-fade{animation:none}}.main{display:flex;flex-direction:column;min-width:0}.topbar{height:60px;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem}.topbar h1{font-size:1.05rem;margin:0}.topbar .user{display:flex;align-items:center;gap:.75rem;font-size:.9rem;color:var(--color-text-muted)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;overflow:hidden}.theme-toggle:hover{background:var(--color-surface-2)}.theme-toggle svg{width:20px;height:20px}.theme-toggle{position:relative}.theme-toggle .ti{position:absolute;inset:0;margin:auto;transform-origin:center;opacity:0;transform:rotate(-90deg) scale(.4);transition:transform .4s cubic-bezier(.34,1.56,.64,1),opacity .28s ease}.theme-toggle[data-active=dark] .ti-moon,.theme-toggle[data-active=light] .ti-sun,.theme-toggle[data-active=system] .ti-system{opacity:1;transform:rotate(0) scale(1)}.content{padding:1.75rem 2rem;max-width:1600px;width:100%;margin:0 auto}.fileupload{display:flex;align-items:center;gap:.85rem;padding:.85rem 1rem;border:1.5px dashed var(--color-border);border-radius:var(--radius);background:var(--color-surface-2);color:var(--color-text-muted);cursor:pointer;transition:border-color .15s ease,background .15s ease}.fileupload.dragover,.fileupload:hover{border-color:var(--color-primary);background:var(--color-surface)}.fileupload.dragover{box-shadow:0 0 0 3px rgba(18,141,123,.12)}.fileupload.disabled{opacity:.6;cursor:not-allowed}.fileupload-icon{flex:0 0 auto;width:30px;height:30px;color:var(--color-primary)}.fileupload-text{display:flex;flex-direction:column;gap:.1rem;min-width:0}.fileupload-text strong{color:var(--color-text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fileupload-text .muted{font-size:.82rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem 1.25rem}.grid{display:grid;grid-gap:1rem;gap:1rem}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.stat{display:flex;flex-direction:column;gap:.15rem}.stat .value{font-size:1.9rem;font-weight:700}.stat .label{color:var(--color-text-muted);font-size:.85rem}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;border-radius:999px;font-size:.78rem;font-weight:600;border:1px solid transparent}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.ampel{display:inline-flex;align-items:center;gap:.5rem;font-weight:600}.ampel .light{width:14px;height:14px;border-radius:50%;box-shadow:0 0 0 3px rgba(0,0,0,.04)}.ampel-gruen .light{background:var(--ampel-gruen)}.ampel-gelb .light{background:var(--ampel-gelb)}.ampel-rot .light{background:var(--ampel-rot)}.table{width:100%;border-collapse:collapse;background:var(--color-surface);border-radius:var(--radius);overflow:hidden}.table td,.table th{text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--color-border);font-size:.9rem}.table th{color:var(--color-text-muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.table tbody tr:hover,.table th{background:var(--color-surface-2)}.table tr{cursor:default}.table tr.clickable:hover{background:var(--color-surface-2);cursor:pointer}label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.3rem;color:var(--color-text)}input,select,textarea{width:100%;padding:.55rem .7rem;border:1px solid var(--color-border);border-radius:8px;font:inherit;background:var(--color-input-bg);color:var(--color-text)}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-primary);outline-offset:1px}.field{margin-bottom:1rem}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;font-weight:600;cursor:pointer}.btn:hover{background:var(--color-surface-2)}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-contrast)}.btn-primary:hover{background:var(--color-primary-dark)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-sm{padding:.3rem .6rem;font-size:.82rem}.btn-danger{border-color:var(--color-danger-border);color:var(--color-danger)}.btn-danger:hover{background:var(--color-danger-surface)}.row{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.muted{color:var(--color-text-muted)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;flex-wrap:wrap;gap:.75rem}.alert{padding:.7rem 1rem;border-radius:8px;border:1px solid var(--color-warn-border);background:var(--color-warn-surface);color:var(--color-warn-text);font-size:.9rem}.alert-error{background:var(--color-danger-surface);color:var(--color-danger);border-color:var(--color-danger-border)}.alert-success{background:var(--color-success-surface);color:var(--color-success-text);border-color:var(--color-success-border)}.login-wrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0f172a,#115e59);padding:1rem}.login-card{width:100%;max-width:380px;background:#fff;border-radius:14px;padding:2rem;box-shadow:0 20px 40px rgba(0,0,0,.25);color-scheme:light;--color-input-bg:#fff;--color-surface:#fff;--color-surface-2:#f8fafc;--color-border:#e2e8f0;--color-text:#0f172a;--color-text-muted:#64748b;--color-danger:#991b1b;--color-danger-border:#fecaca;--color-danger-surface:#fef2f2;color:var(--color-text)}.login-card .brand{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.15rem;margin-bottom:1.25rem}.login-card .brand img{height:44px;width:auto}.timeline{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.timeline li{border-left:2px solid var(--color-border);padding:0 0 .25rem 1rem;position:relative}.timeline li:before{content:"";position:absolute;left:-6px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--color-primary)}.select-wrap{min-height:100vh;background:var(--color-bg);display:flex;flex-direction:column}.select-head{height:60px;flex:0 0 auto;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem}.select-head .brand{display:flex;align-items:center;gap:.6rem;color:var(--color-text)}.select-head .brand-name{font-weight:700;font-size:1rem}.select-head .brand-text{display:flex;flex-direction:column;line-height:1.2}.select-head .brand-text small{color:var(--color-text-muted);font-size:.7rem}.select-main{flex:1 1;width:100%;max-width:1000px;margin:0 auto;padding:2.5rem 2rem}.select-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:1rem;gap:1rem;margin-top:1.25rem}.company-tile{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;text-align:left;padding:1.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;font:inherit;color:var(--color-text);transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.company-tile:hover{transform:translateY(-2px);border-color:var(--color-primary);box-shadow:var(--shadow-lg,0 10px 30px rgba(0,0,0,.12))}.company-tile.disabled{opacity:.55;cursor:not-allowed}.company-tile.disabled:hover{transform:none;border-color:var(--color-border)}.company-emoji{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:1.25rem;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));margin-bottom:.35rem}.company-name{font-weight:600;font-size:1rem}.company-sub{font-size:.82rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em}.modal-backdrop{position:fixed;inset:0;z-index:200;background:rgba(15,23,42,.5);display:grid;place-items:center;padding:1rem;animation:modalFade .12s ease}@keyframes modalFade{0%{opacity:0}to{opacity:1}}.modal{width:100%;max-width:460px}.badge-ready{background:var(--color-success-surface);color:var(--color-success-text);border-color:var(--color-success-border)}.badge-busy{background:var(--color-surface-2);color:var(--color-text-muted);border-color:var(--color-border)}.badge-error{background:var(--color-danger-surface);color:var(--color-danger);border-color:var(--color-danger-border)}.toast-stack{position:fixed;right:1.25rem;bottom:1.25rem;z-index:1000;flex-direction:column;width:min(360px,calc(100vw - 2rem));pointer-events:none}.toast,.toast-stack{display:flex;gap:.6rem}.toast{pointer-events:auto;align-items:flex-start;padding:.7rem .9rem;border-radius:10px;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-left:4px solid var(--color-text-muted);box-shadow:0 10px 30px rgba(0,0,0,.22);font-size:.9rem;line-height:1.4;cursor:pointer;opacity:0;transform:translateY(18px);transition:opacity .32s ease,transform .32s cubic-bezier(.22,1,.36,1)}.toast-shown{opacity:1;transform:translateY(0)}.toast-leaving{opacity:0;transform:translateY(0);transition:opacity .8s ease}.toast-success{border-left-color:var(--color-success-text)}.toast-error{border-left-color:var(--color-danger)}.toast-info{border-left-color:var(--color-primary)}.toast-icon{flex:0 0 auto;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;margin-top:1px}.toast-success .toast-icon{background:var(--color-success-text)}.toast-error .toast-icon{background:var(--color-danger)}.toast-info .toast-icon{background:var(--color-primary)}.toast-text{min-width:0;word-break:break-word}@media (prefers-reduced-motion:reduce){.toast{transition:opacity .2s ease}.toast,.toast-shown{transform:none}}@media print{.toast-stack{display:none!important}}.settings-layout{display:grid;grid-template-columns:240px 1fr;grid-gap:1.5rem;gap:1.5rem;align-items:start}.settings-nav{position:-webkit-sticky;position:sticky;top:1rem;display:flex;flex-direction:column;gap:.15rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:.5rem}.settings-nav-group{padding:.75rem .75rem .35rem;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.settings-nav-link{display:block;width:100%;text-align:left;padding:.55rem .75rem;border-radius:8px;border:none;background:transparent;color:var(--color-text);font:inherit;font-size:.92rem;cursor:pointer}.settings-nav-link:hover{background:var(--color-surface-2)}.settings-nav-link.active{background:rgba(18,141,123,.12);color:var(--color-primary-dark);font-weight:600}:root[data-theme=dark] .settings-nav-link.active{color:var(--color-sidebar-active)}.settings-panel{min-width:0}@media (max-width:860px){.settings-layout{grid-template-columns:1fr}.settings-nav{position:static;flex-direction:row;flex-wrap:wrap;overflow-x:auto}.settings-nav-group{display:none}.settings-nav-link{width:auto;white-space:nowrap}.app-shell{grid-template-columns:1fr}.sidebar{flex-direction:row;align-items:center;height:auto;position:static;overflow-x:auto;overflow-y:hidden;padding:.4rem .5rem;gap:.25rem}.sidebar .brand{border-bottom:none;padding:.25rem .5rem;flex:0 0 auto}.brand-text{display:none}.nav{flex:1 1;flex-direction:row;padding:0;gap:.15rem;overflow-x:auto;overflow-y:hidden}.nav>div{display:contents}.nav-section{display:none}.nav-link{white-space:nowrap}.sidebar-foot{border-top:none;padding:.2rem;flex:0 0 auto;margin-left:auto}.sidebar-toggle,.who-text{display:none}.user-menu{left:auto;right:0;bottom:auto;top:calc(100% + 8px);min-width:200px}.grid.cols-3,.grid.cols-4{grid-template-columns:1fr 1fr}}@media (max-width:520px){.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}.content{padding:1rem}}@media print{.no-print,.sidebar,.topbar{display:none!important}.app-shell{grid-template-columns:1fr}.content{padding:0;max-width:100%}.card{box-shadow:none;page-break-inside:avoid;break-inside:avoid}body{background:#fff}}