:root{--ink: #eef1f4;--steel: #a9b7c6;--steel-light: #7c8ba0;--bg: #12161d;--card: #1b212b;--line: #2c3542;--accent: #d97e3f;--accent-dark: #c46a2c;--danger: #e26565;--topbar-bg: #0b0e13;--radius: 6px;font-family:Segoe UI,Roboto,-apple-system,sans-serif}[data-theme=light]{--ink: #1c2430;--steel: #3a4a5e;--steel-light: #64798f;--bg: #eef1f4;--card: #ffffff;--line: #dbe1e8;--accent: #c96f2e;--accent-dark: #a85a22;--danger: #b23a3a;--topbar-bg: #1c2430}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);transition:background .15s ease,color .15s ease}a{color:var(--steel)}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#12161d,#3a4a5e)}.auth-card{background:var(--card);padding:40px;border-radius:var(--radius);width:340px;box-shadow:0 20px 50px #0000004d}.auth-card h1{margin:0 0 4px;font-size:22px}.auth-sub{color:var(--steel-light);margin:0 0 24px;font-size:14px}.auth-card label,.station-form label,.saeule-box label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--steel);margin-bottom:14px}input,select,textarea{font-size:14px;padding:8px 10px;border:1px solid var(--line);border-radius:4px;font-family:inherit;background:var(--card);color:var(--ink)}textarea{resize:vertical}.version-tag{position:fixed;bottom:10px;right:14px;font-size:11px;color:var(--steel-light);background:var(--card);border:1px solid var(--line);padding:3px 8px;border-radius:4px;opacity:.85}button{cursor:pointer;font-family:inherit}.auth-card button[type=submit]{width:100%;background:var(--accent);color:#fff;border:none;padding:10px;border-radius:4px;font-size:15px;margin-top:8px}.link-btn{background:none;border:none;color:var(--steel-light);text-decoration:underline;font-size:13px;margin-top:10px;padding:0}.link-btn.danger{color:var(--danger)}.app-shell{min-height:100vh}.topbar{background:var(--topbar-bg);color:#fff;display:flex;align-items:center;padding:0 24px;height:56px;gap:32px}.theme-toggle{background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#fff;border-radius:50%;width:32px;height:32px;font-size:15px;display:flex;align-items:center;justify-content:center;line-height:1}.theme-toggle:hover{background:#ffffff2e}.brand{font-weight:700;letter-spacing:.02em;display:flex;align-items:center;gap:10px}.brand-logo{height:34px;width:34px;object-fit:cover;object-position:top;border-radius:6px}.auth-logo{display:block;width:84px;height:84px;object-fit:cover;object-position:top;border-radius:12px;margin:0 auto 16px}.auth-logo-large{display:block;width:100%;max-width:320px;height:auto;margin:0 auto 20px;border-radius:8px}.tabs{display:flex;gap:4px;flex:1}.tab{color:#ffffffb3;text-decoration:none;padding:8px 14px;border-radius:4px;font-size:14px}.tab.active,.tab:hover{background:#ffffff1a;color:#fff}.user-box{display:flex;align-items:center;gap:12px;font-size:13px;color:#fffc}.user-box .link-btn{color:#fff9}.content{padding:28px 32px;max-width:1100px;margin:0 auto}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.search-input{width:100%;margin-bottom:16px;padding:10px 14px}.btn-primary,.btn-secondary,.btn-danger{border:none;padding:9px 16px;border-radius:4px;font-size:14px;text-decoration:none;display:inline-block}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark)}.btn-secondary{background:var(--card);color:var(--steel);border:1px solid var(--line)}.btn-danger{background:var(--danger);color:#fff}.error-box{background:#fbeaea;color:var(--danger);padding:10px 14px;border-radius:4px;font-size:13px;margin-bottom:14px}.empty-state{color:var(--steel-light);font-style:italic}.station-table{width:100%;border-collapse:collapse;background:var(--card);border-radius:var(--radius);overflow:hidden}.station-table th,.station-table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);font-size:14px}.station-table th{background:#f5f7f9;color:var(--steel);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.station-table a{font-weight:600;text-decoration:none}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}.info-box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}.info-box legend{padding:0 6px;font-weight:600;color:var(--steel)}.info-box h3{margin-top:0;color:var(--steel)}.saeulen-section h3{color:var(--steel)}.plz-ort-row{display:grid;grid-template-columns:100px 1fr;gap:12px}.pc-standort-row{display:grid;grid-template-columns:160px 1fr;gap:12px}.image-upload-box{margin-top:4px}.image-upload-label{display:block;font-size:13px;color:var(--steel);margin-bottom:8px}.image-upload-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.image-preview{width:120px;height:90px;object-fit:cover;border-radius:4px;border:1px solid var(--line)}.image-upload-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.detail-image{width:100%;max-width:260px;border-radius:4px;border:1px solid var(--line);margin-top:6px;display:block}.ordner-liste{display:flex;flex-direction:column;gap:20px}.ordner-box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}.bilder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.bilder-grid-item{position:relative;border-radius:4px;overflow:hidden;border:1px solid var(--line);aspect-ratio:1 / 1}.bilder-grid-item img{width:100%;height:100%;object-fit:cover;display:block}.bild-loeschen-btn{position:absolute;top:4px;right:4px;background:#000000a6;color:#fff;border:none;border-radius:50%;width:24px;height:24px;font-size:16px;line-height:1;cursor:pointer}.bild-loeschen-btn:hover{background:var(--danger)}.dok-datei-link{display:block;width:100%;height:100%}.dok-pdf-kachel{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--bg);padding:8px;text-align:center}.dok-pdf-icon{font-size:32px}.dok-pdf-name{font-size:11px;color:var(--steel);word-break:break-word;line-height:1.3}.stunden-tabelle-wrapper{overflow-x:auto;margin-bottom:12px}.stunden-tabelle{width:100%;border-collapse:collapse;background:var(--card);border-radius:var(--radius);overflow:hidden}.stunden-tabelle th,.stunden-tabelle td{border-bottom:1px solid var(--line);padding:4px 6px;font-size:13px;text-align:center;white-space:nowrap}.stunden-tabelle th{background:var(--bg);color:var(--steel);font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:.03em}.stunden-tag-zelle{text-align:left;font-weight:600;color:var(--steel)}.stunden-abstand-spalte{border-left:1px solid var(--line);border-right:1px solid var(--line)}.stunden-input-klein{width:36px}.stunden-wochentag{font-weight:400;color:var(--steel-light);font-size:11px}.stunden-input{width:46px;padding:5px 4px;text-align:center;font-size:13px}.stunden-input-text{width:220px;text-align:left}.stundenbuch-tag{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-bottom:20px}.stundenbuch-tagesgesamt{font-weight:700;color:var(--accent)}.stundenbuch-auftrag-box{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:14px 16px;margin-bottom:14px}.stundenbuch-segmente-tabelle{width:100%;border-collapse:collapse;margin-top:10px}.stundenbuch-segmente-tabelle th,.stundenbuch-segmente-tabelle td{padding:4px 8px;text-align:center;font-size:13px}.stundenbuch-segmente-tabelle th{color:var(--steel-light);font-weight:600;text-transform:uppercase;font-size:11px}.stundenbuch-segmente-tabelle td:first-child{text-align:left}.stunden-ueber-zelle{font-weight:600;color:var(--steel)}.stunden-ueber-negativ{color:var(--danger)}.stunden-wochenende{background:#ffffff05}.stunden-wochenende .stunden-tag-zelle{color:var(--accent)}.stunden-summary-box{display:flex;gap:24px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;margin-bottom:16px}.stunden-summary-box>div{display:flex;flex-direction:column;gap:4px}.stunden-summary-label{font-size:12px;color:var(--steel-light);text-transform:uppercase;letter-spacing:.03em}.stunden-summary-value{font-size:22px;font-weight:700;color:var(--accent)}.info-page{display:flex;justify-content:center;padding-top:20px}.info-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:32px 40px;max-width:380px;width:100%;text-align:center}.info-logo{width:90px;height:90px;object-fit:cover;object-position:top;border-radius:12px;margin-bottom:12px}.info-card h2{margin:0 0 24px}.info-block{text-align:left;border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.info-block h3{margin:0 0 8px;color:var(--steel);font-size:13px;text-transform:uppercase;letter-spacing:.04em}.info-block p{margin:3px 0;font-size:14px}.info-block a{color:var(--accent);text-decoration:none}.info-block a:hover{text-decoration:underline}.home-dashboard{max-width:640px;margin:0 auto}.home-dashboard h2{margin-bottom:24px}.quick-search-box{display:flex;gap:10px;margin-bottom:32px}.quick-search-box input{flex:1;padding:12px 16px;font-size:15px}.dashboard-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}.dashboard-tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px 16px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;transition:border-color .15s ease;cursor:pointer;font:inherit}.dashboard-tile:hover{border-color:var(--accent)}.dashboard-tile-icon{font-size:26px;color:var(--accent);line-height:1}.dashboard-tile-label{font-size:14px;font-weight:600}.upload-box{margin-bottom:24px}.pdf-result{display:flex;flex-direction:column;gap:20px}.candidates-box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}.candidate-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);gap:16px}.candidate-row:last-child{border-bottom:none}.verlauf-liste{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.verlauf-eintrag{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--steel);border-radius:var(--radius);padding:14px 18px}.verlauf-kopf{display:flex;align-items:center;gap:10px;margin-bottom:6px}.verlauf-nummer{font-size:12px;color:var(--steel-light);background:var(--bg);border-radius:4px;padding:2px 8px}.verlauf-typ{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--accent);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:2px 8px}.verlauf-status{font-size:13px;font-weight:600;padding:6px 10px;border-radius:4px;display:inline-block;margin:6px 0}.verlauf-status-wartet{background:#ffa5001f;color:#d98c00}.verlauf-status-fertig{background:#00b45a1f;color:#12a454}.verlauf-status-wartet-text{color:var(--danger);font-weight:700}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal-box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;width:100%;max-width:640px;max-height:90vh;overflow-y:auto}.signatur-pad-box{margin-bottom:16px}.signatur-pad-kopf{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.signatur-label{font-weight:600;color:var(--steel)}.signatur-canvas{width:100%;max-width:500px;height:180px;background:#fff;border:1px solid var(--line);border-radius:6px;touch-action:none;cursor:crosshair;display:block}.verlauf-monteur{font-size:13px;color:var(--steel-light);margin:0 0 6px}.verlauf-link{display:inline-block;margin-top:8px;font-size:13px;padding:6px 12px}.saeule-box{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius);padding:16px 18px;margin-bottom:16px}.saeule-box-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.saeule-box-actions{display:flex;gap:16px}.saeule-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 16px}.produkte-box{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.produkte-label{display:block;font-size:13px;color:var(--steel);margin-bottom:8px}.produkte-checkboxes{display:flex;flex-wrap:wrap;gap:10px 20px}.checkbox-label{display:flex!important;flex-direction:row!important;align-items:center;gap:6px;font-size:13px;color:var(--ink);margin-bottom:0!important}.checkbox-label input{width:auto;padding:0}.saeulen-grid-view{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.saeulen-grid-view .saeule-box p{margin:4px 0;font-size:13px;color:var(--steel)}.form-actions{display:flex;align-items:center;gap:16px;margin-top:20px}@media (max-width: 760px){.two-col,.three-col,.saeule-grid{grid-template-columns:1fr}}
