:root{--bg:#f3f4f7;--card:#fff;--raised:#fff;--text:#111827;--muted:#5b6472;--border:#dde1e7;--off:#eef1f5;--primary:#2563eb;--on-primary:#fff;--link:#1d4ed8;--primary-soft:#dbeafe;--success:#15803d;--warning:#b45309;--warning-bg:#f59e0b;--on-warning:#1f1300;--danger:#dc2626;--danger-bg:#dc2626;--danger-soft:#fdecec;--holiday:#0e7490;--chip-on:#fff;--backdrop:#0f172a73;--c-urlaub:#15803d;--c-krank:#dc2626;--c-ueberstunden:#7e22ce;--c-kurzarbeit:#c2410c;--c-feiertag:#0e7490;--c-frei:#475569;--c-sonstiges:#a16207;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b0e13;--card:#161a21;--raised:#1f242d;--text:#eef1f5;--muted:#a3acb9;--border:#363d4a;--off:#0f1218;--primary:#3b82f6;--on-primary:#fff;--link:#7ab4ff;--primary-soft:#1b2b47;--success:#4ade80;--warning:#fbbf24;--warning-bg:#f59e0b;--on-warning:#1f1300;--danger:#f87171;--danger-bg:#dc2626;--danger-soft:#3a1619;--holiday:#22d3ee;--chip-on:#0b0e13;--backdrop:#000000b3;--c-urlaub:#4ade80;--c-krank:#f87171;--c-ueberstunden:#c084fc;--c-kurzarbeit:#fb923c;--c-feiertag:#22d3ee;--c-frei:#a3acb9;--c-sonstiges:#facc15;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0b0e13;--card:#161a21;--raised:#1f242d;--text:#eef1f5;--muted:#a3acb9;--border:#363d4a;--off:#0f1218;--primary:#3b82f6;--on-primary:#fff;--link:#7ab4ff;--primary-soft:#1b2b47;--success:#4ade80;--warning:#fbbf24;--warning-bg:#f59e0b;--on-warning:#1f1300;--danger:#f87171;--danger-bg:#dc2626;--danger-soft:#3a1619;--holiday:#22d3ee;--chip-on:#0b0e13;--backdrop:#000000b3;--c-urlaub:#4ade80;--c-krank:#f87171;--c-ueberstunden:#c084fc;--c-kurzarbeit:#fb923c;--c-feiertag:#22d3ee;--c-frei:#a3acb9;--c-sonstiges:#facc15;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px}body.no-scroll{overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}input,select{font:inherit;color:var(--text);background:var(--card);border:1px solid var(--border);border-radius:10px;min-width:0;padding:.55rem .7rem}input:focus,select:focus{outline:2px solid var(--primary);outline-offset:-1px}h1,h2,h3{margin:0 0 .6rem}h2{font-size:1.1rem}h3{margin-top:1rem;font-size:.95rem}.app{max-width:640px;min-height:100vh;padding-bottom:calc(72px + env(safe-area-inset-bottom));margin:0 auto}.app-header{padding:1rem 1rem .25rem}.app-header h1{color:var(--link);font-size:1.35rem}.page{flex-direction:column;gap:.9rem;padding:.5rem 1rem 1rem;display:flex}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.grow{flex:1}.muted{color:var(--muted)}.small{font-size:.82rem}.center{text-align:center}.info{background:var(--primary-soft);border-radius:10px;margin-top:0;padding:.5rem .75rem}.btn{background:var(--border);border:none;border-radius:12px;padding:.65rem 1rem;font-weight:600}.btn.full{width:100%;margin-top:.75rem}.btn.primary{background:var(--primary);color:var(--on-primary)}.btn.secondary{background:var(--primary-soft);color:var(--link)}.btn.warning{background:var(--warning-bg);color:var(--on-warning)}.btn.danger{background:var(--danger-bg);color:#fff}.btn.big{border-radius:16px;padding:1rem;font-size:1.15rem}.btn:active{transform:scale(.98)}.icon-btn{color:var(--muted);background:0 0;border:none;border-radius:8px;padding:.35rem .55rem;font-size:1.2rem}.icon-btn:hover{background:var(--border)}.link{color:var(--link);background:0 0;border:none;padding:.25rem 0;font-size:.9rem}.link.danger{color:var(--danger)}.project-picker{--accent:var(--primary);flex:1;align-items:center;display:flex;position:relative}.project-picker .dot{background:var(--accent);pointer-events:none;border-radius:50%;width:12px;height:12px;position:absolute;left:.9rem}.project-picker select{appearance:none;border:2px solid var(--accent);border-radius:12px;width:100%;padding:.75rem 2.2rem;font-size:1.1rem;font-weight:600}.project-picker select:disabled{opacity:1;cursor:not-allowed}.project-picker .chevron{pointer-events:none;color:var(--muted);position:absolute;right:.9rem}.timer{flex-direction:column;gap:.6rem;display:flex}.timer .start{width:100%;padding:1.4rem;font-size:1.35rem}.timer.running{border-color:var(--success);box-shadow:0 0 0 3px color-mix(in srgb, var(--success) 20%, transparent)}.timer.paused{border-color:var(--warning);box-shadow:0 0 0 3px color-mix(in srgb, var(--warning) 25%, transparent)}.timer-status{text-align:center;font-weight:600}.timer.running .timer-status{color:var(--success)}.timer.paused .timer-status{color:var(--warning)}.clock{text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:3rem;font-weight:700}.timer-actions{grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.4rem;display:grid}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.stat{background:var(--off);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:.2rem;padding:.6rem;display:flex}.stat span{font-size:.78rem}.stat strong{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:clamp(.8rem,4vw,1.15rem)}.stat.pos strong{color:var(--success)}.stat.neg strong{color:var(--danger)}.surcharge-list{margin:.5rem 0 0;padding:0;list-style:none}.surcharge-list li{border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;grid-template-columns:minmax(0,1fr) auto auto;gap:.5rem;padding:.4rem 0;display:grid}.surcharge-list li>:nth-child(2),.surcharge-list li>:nth-child(3){text-align:right}.surcharge-list li.total{border-bottom:none;font-weight:600}.badge{background:var(--danger-bg);color:#fff;vertical-align:middle;border-radius:999px;padding:.05rem .5rem;font-size:.75rem;display:inline-block}.missing-list{margin:0;padding:0;list-style:none}.missing-list li{border-bottom:1px solid var(--border);padding:.6rem 0}.missing-list li:last-child{border-bottom:none}.missing-date{text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:0 0 .4rem;font-weight:600;display:flex}.chips{flex-wrap:wrap;gap:.4rem;display:flex}.chip{--chip:var(--link);border:1.5px solid var(--chip);color:var(--chip);background:0 0;border-radius:999px;padding:.35rem .8rem;font-size:.88rem;font-weight:500}.chip.small{padding:.25rem .65rem;font-size:.8rem}.chip.active{background:var(--chip);color:var(--chip-on)}.chip.static{cursor:default;padding:.2rem .6rem;font-size:.8rem}.summary-chips{margin:.75rem 0 .25rem}.month-nav{justify-content:space-between;align-items:center;margin:.75rem 0;display:flex}.month-nav h2{margin:0}.month-nav .icon-btn{font-size:1.6rem}.day-list{padding:.25rem 0}.day-row{text-align:left;border:none;border-bottom:1px solid var(--border);background:0 0;grid-template-columns:3rem 1fr auto;align-items:center;gap:.6rem;width:100%;min-height:3.1rem;padding:.55rem 1rem;display:grid}.day-row:last-child{border-bottom:none}.day-row.off{background:var(--off);color:var(--muted)}.day-row.today{box-shadow:inset 3px 0 0 var(--primary)}.day-row.untracked{background:var(--danger-soft)}.day-date{flex-direction:column;line-height:1.15;display:flex}.day-info{font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-start;gap:.2rem;min-width:0;font-size:.9rem;display:flex}.day-info sup{font-size:.7em;line-height:0}.day-hours{font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;display:flex}.tag{--chip:var(--muted);color:var(--chip);font-size:.78rem;font-weight:600}.tag.holiday{color:var(--holiday)}.tag.missing{color:var(--danger)}.modal-backdrop{background:var(--backdrop);z-index:50;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--raised);border:1px solid var(--border);border-bottom:none;border-radius:18px 18px 0 0;flex-direction:column;width:100%;max-width:640px;max-height:92dvh;display:flex}@media (width>=700px){.modal-backdrop{align-items:center}.modal{border-radius:18px}}.modal-header{justify-content:space-between;align-items:center;padding:1rem 1rem .5rem;display:flex}.modal-header h2{margin:0}.modal-body{min-height:0;padding:0 1rem calc(1.25rem + env(safe-area-inset-bottom));overflow-y:auto}.editor-section{margin-bottom:1rem}.session-edit{border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:.5rem;margin-bottom:.6rem;padding:.75rem;display:flex}.session-edit .row:first-child{justify-content:space-between}.session-edit .label{font-weight:600}.times label{color:var(--muted);flex-direction:column;flex:1;gap:.2rem;font-size:.8rem;display:flex}.pause-row{border-left:3px solid var(--warning);align-items:flex-end;padding-left:.75rem}.running-badge{color:var(--success);padding:.55rem 0;font-size:1rem;font-weight:600}.note{width:100%;margin-top:.5rem}.day-totals{background:var(--off);border-radius:12px;padding:.75rem}.day-totals>div{justify-content:space-between;padding:.15rem 0;display:flex}.project-card{padding:0}.project-card.archived{opacity:.7}.project-head{text-align:left;background:0 0;border:none;align-items:center;gap:.6rem;width:100%;padding:1rem;display:flex}.dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.project-form{flex-direction:column;gap:.7rem;padding:0 1rem 1rem;display:flex}.project-form>label,.grid-2 label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.project-form>label.checkbox{color:var(--text);flex-direction:row;align-items:center}.grid-2{grid-template-columns:1fr 1fr;gap:.75rem .6rem;display:grid}.grid-2 label{justify-content:space-between;line-height:1.25}.color-row{gap:.5rem;display:flex}.color{border:3px solid #0000;border-radius:50%;width:28px;height:28px}.color.active{border-color:var(--text)}.weekday-toggle{flex-wrap:wrap;gap:.3rem;display:flex}.weekday-toggle button{border:1px solid var(--border);background:var(--card);border-radius:8px;min-width:2.4rem;padding:.35rem .55rem;font-size:.85rem}.weekday-toggle button.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.surcharge-edit{border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:.5rem;padding:.6rem;display:flex}.surcharge-edit.disabled{opacity:.6}.surcharge-edit .suffix{align-items:center;gap:.25rem;display:flex}.surcharge-edit .suffix input{width:4.5rem}.checkbox input{width:1.2rem;height:1.2rem;margin-right:.4rem}.danger-zone{justify-content:flex-end;margin-top:.5rem}.onboarding form{flex-direction:column;display:flex}.tabbar{background:var(--card);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:10;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{max-width:213px;color:var(--muted);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:.1rem;padding:.55rem 0;font-size:.78rem;display:flex}.tabbar button.active{color:var(--link);font-weight:600}.tab-icon{font-size:1.3rem}.grid-2 input,.grid-2 select{width:100%}.surcharge-edit .row select,.surcharge-edit .row input[type=time]{flex:1;min-width:7.5rem}.install-steps{margin:.5rem 0 0;padding-left:1.2rem;line-height:1.6}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation;overscroll-behavior-y:none}.install-hint{background:var(--primary-soft);border-radius:12px;align-items:center;gap:.25rem;padding:.25rem .25rem .25rem .75rem;display:flex}.install-hint button.grow{text-align:left;color:var(--link);background:0 0;border:none;padding:.4rem 0;font-size:.88rem;font-weight:600}.surcharge-list li .muted{white-space:nowrap;font-size:.85em}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.demo-bar{color:var(--muted);align-items:baseline;gap:.6rem;font-size:.82rem;display:flex}.toast{left:50%;bottom:calc(80px + env(safe-area-inset-bottom));background:var(--text);width:min(560px,100% - 32px);color:var(--card);z-index:60;border-radius:12px;padding:.75rem 1rem;font-size:.9rem;position:fixed;transform:translate(-50%);box-shadow:0 6px 24px #00000040}.toggle-row{align-items:flex-start;gap:.25rem;margin-bottom:.25rem;display:flex}.toggle-row input{flex-shrink:0;margin-top:.15rem}.neg{color:var(--danger)}.meter{background:var(--off);border:1px solid var(--border);border-radius:999px;height:10px;margin-top:.8rem;display:flex;overflow:hidden}.meter-taken{background:var(--c-urlaub)}.meter-planned{background:color-mix(in srgb, var(--c-urlaub) 40%, transparent)}.meter-legend{flex-wrap:wrap;gap:.3rem 1rem;margin-top:.5rem;display:flex}.meter-legend .dot{vertical-align:middle;width:10px;height:10px;margin-right:.2rem;display:inline-block}.year-table{margin-top:.75rem}.year-row{border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;grid-template-columns:minmax(0,1fr) repeat(3,4.8rem);gap:.5rem;padding:.45rem 0;display:grid}.year-row>:not(:first-child){text-align:right}.year-row.head{color:var(--muted);font-size:.78rem;font-weight:600}.year-row.inactive{color:var(--muted)}.month-extra{flex-direction:column;gap:.2rem;margin-top:.6rem;display:flex}.month-extra>div{justify-content:space-between;gap:.5rem;font-size:.9rem;display:flex}.month-extra>div>:last-child{white-space:nowrap}.field-list{border:1px solid var(--border);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.field-list label{color:var(--text);border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) 5.5rem 2.2rem;align-items:center;gap:.6rem;padding:.55rem .75rem;font-size:.95rem;display:grid}.field-list label:last-child{border-bottom:none}.field-list input{text-align:right;width:100%}.field-list .unit{color:var(--muted);font-size:.85rem}.release-list{flex-direction:column;gap:.75rem;margin-bottom:1rem;display:flex}.release-list h3{margin:0 0 .3rem}.release-list ul{margin:0;padding-left:1.2rem;line-height:1.5}.update-actions{flex-wrap:wrap;gap:.5rem;margin:.75rem 0 .25rem;display:flex}.update-actions .btn{flex:1;min-width:9rem}.btn:disabled{opacity:.55;cursor:default}.update-status{margin:.4rem 0}.update-status.highlight{color:var(--link);font-weight:600}.update-bar{background:var(--primary-soft);color:var(--link);border-radius:12px;justify-content:space-between;align-items:center;gap:.75rem;margin:.25rem 1rem 0;padding:.5rem .5rem .5rem .9rem;font-size:.9rem;font-weight:600;display:flex}.update-bar .btn{white-space:nowrap;padding:.45rem .8rem;font-size:.85rem}.tabbar button{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.72rem;overflow:hidden}@media (width<=350px){.tabbar button{font-size:.66rem}.stat{padding:.5rem}.surcharge-list li{gap:.4rem;font-size:.88rem}}.surcharge-list li>:first-child{overflow-wrap:anywhere}.field-list .field-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:.75rem;padding:.55rem .75rem;font-size:.95rem;display:flex}.field-list .field-row:last-child{border-bottom:none}.field-list .field-row strong{text-align:right;font-variant-numeric:tabular-nums}.field-list label.muted{color:var(--muted)}.terms-history{flex-direction:column;gap:.4rem;margin-top:.25rem;display:flex}.terms-entry{text-align:left;background:var(--off);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.15rem;padding:.55rem .75rem;display:flex}.terms-entry.active{border-color:var(--primary)}.terms-date{flex-wrap:wrap;align-items:baseline;gap:.5rem;font-weight:600;display:flex}.terms-date .tag{color:var(--link)}.terms-from{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;font-weight:600;display:flex}.terms-workdays{color:var(--muted);flex-direction:column;gap:.4rem;margin:.75rem 0;font-size:.85rem;display:flex}.btn.danger-text{color:var(--danger);background:var(--danger-soft)}.wizard-progress{gap:.3rem;margin-bottom:.4rem;display:flex}.wizard-progress span{background:var(--border);border-radius:999px;flex:1;height:4px}.wizard-progress span.done{background:var(--primary)}.wizard-step{margin:0 0 .75rem}.wizard-body{flex-direction:column;gap:.9rem;display:flex}.wizard-body>p{margin:0}.wizard-field{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.wizard-field input,.wizard-field select{width:100%;color:var(--text)}.wizard-subhead{margin:.25rem 0 0;font-weight:600}.wizard-rule-name{align-items:center;gap:.5rem;display:flex}.wizard-rule-name input{flex-shrink:0;width:1.2rem;height:1.2rem}.wizard-section{border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:.4rem;padding:.75rem;display:flex}.wizard-section .btn.full{margin-top:.25rem}.wizard-nav{grid-template-columns:1fr 1fr;gap:.6rem;margin-top:1.25rem;display:grid}.field-list label>span:first-child,.wizard-rule-name>span{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:anywhere;min-width:0}@media (width<=350px){.field-list label{grid-template-columns:minmax(0,1fr) 4.6rem 1.9rem;gap:.45rem;padding:.5rem .6rem}}.choice-field{flex-direction:column;gap:.4rem;display:flex}.choice-label{color:var(--muted);margin:0;font-size:.85rem}.choice-group{border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:.6rem;padding:.65rem .75rem;display:flex}.choice{cursor:pointer;align-items:flex-start;gap:.6rem;display:flex}.choice input{width:1.15rem;height:1.15rem;accent-color:var(--primary);flex-shrink:0;margin-top:.15rem}.choice>span{flex-direction:column;gap:.1rem;display:flex}.shift-option{flex-direction:column;gap:.25rem;display:flex}.shift-option p{margin:0}.delete-confirm{margin-top:1rem}.delete-confirm strong{color:var(--danger)}.confirm-backdrop{background:var(--backdrop);z-index:70;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--raised);border:1px solid var(--border);border-radius:16px;width:min(360px,100%);padding:1.25rem 1rem 1rem;box-shadow:0 10px 40px #0000004d}.confirm-dialog p{overflow-wrap:anywhere;margin:0 0 1.25rem;font-size:1.05rem}.confirm-dialog p:has(+.confirm-detail){margin-bottom:.5rem}.confirm-dialog .confirm-detail{font-size:.85rem}.confirm-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.5rem;display:grid}.auto-break-option{flex-direction:column;gap:.35rem;display:flex}.auto-break-option p{margin:0}.auto-note{color:var(--muted);margin:-.2rem 0 .2rem .75rem;font-size:.8rem}
