@font-face{font-family:future;src:url(../media/Jost_Regular-s.p.153qj00rttqcr.ttf)format("truetype");font-display:swap;font-weight:400}@font-face{font-family:future;src:url(../media/Jost_Medium-s.p.3pbvbauomx-5k.ttf)format("truetype");font-display:swap;font-weight:500}@font-face{font-family:future;src:url(../media/Jost_Bold-s.p.02m4n_stuqk5x.ttf)format("truetype");font-display:swap;font-weight:700}@font-face{font-family:future Fallback;src:local(Arial);ascent-override:112.02%;descent-override:39.26%;line-gap-override:0.0%;size-adjust:95.51%}.jxeo0G_className{font-family:future,future Fallback}.jxeo0G_variable{--font-future:"future", "future Fallback"}
@font-face{font-family:mono;src:url(../media/DMMono_Regular-s.p.450f27b-tfisu.ttf)format("truetype");font-display:swap;font-weight:400}@font-face{font-family:mono Fallback;src:local(Arial);ascent-override:75.44%;descent-override:23.58%;line-gap-override:0.0%;size-adjust:131.49%}.e13eJa_className{font-family:mono,mono Fallback;font-weight:400}.e13eJa_variable{--font-mono:"mono", "mono Fallback"}
@font-face{font-family:"serif";src:url(../media/Newsreader_Regular-s.p.1dhi3xaumlblq.ttf)format("truetype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:"serif";src:url(../media/Newsreader_Italic-s.p.279419q_r8r3z.ttf)format("truetype");font-display:swap;font-weight:400;font-style:italic}@font-face{font-family:serif Fallback;src:local(Arial);ascent-override:76.71%;descent-override:27.66%;line-gap-override:0.0%;size-adjust:95.82%}.TVewdG_className{font-family:"serif",serif Fallback}.TVewdG_variable{--font-serif:"serif", "serif Fallback"}
:root{--primary:#0f4c81;--primary-dark:#0f2e4d;--accent:#7fd8b8;--surface:#e6f3f8;--ground:#fafafa;--card:#fff;--ink:#1f2a36;--muted:#3d4853;--line:#e3e3e3;--line-strong:#c9d3db;--error:#a3261b;--error-bg:#fdeeec;--pixel-nebel:#cfe6f2;--pixel-himmel:#9cc3e2;--pixel-salbei:#7fd8b8;--pixel-lagune:#3fa7b5;--font-heading:"The Future", var(--font-future), "Jost", sans-serif;--font-label:"The Future Mono", var(--font-mono), "DM Mono", ui-monospace, monospace;--font-body:"Signifier", var(--font-serif), "Newsreader", Georgia, serif}*{box-sizing:border-box}body{background:var(--ground);color:var(--ink);font:18px/1.55 var(--font-body);margin:0}a{color:var(--primary)}.site-header{background:var(--card);border-bottom:1px solid var(--line);position:relative;overflow:hidden}.site-header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;max-width:1120px;margin:0 auto;padding:20px 16px;display:flex}.brand{align-items:center;gap:16px;text-decoration:none;display:flex}.brand img{width:210px;height:auto;display:block}.app-name{border-left:1px solid var(--line-strong);font:500 22px/1 var(--font-heading);color:var(--primary);padding-left:16px}@media (max-width:480px){.brand img{width:160px}.app-name{font-size:18px}}.pixels{pointer-events:none;width:96px;height:72px;position:absolute;top:0;right:0}.pixels span{width:24px;height:24px;position:absolute}.site-nav{font:500 16px/1.2 var(--font-heading);gap:28px;margin-right:100px;display:flex}.site-nav a{color:var(--ink);text-decoration:none}.site-nav a:hover{color:var(--primary)}main{max-width:1120px;margin:0 auto;padding:40px 16px 80px}.overline{font:14px/1.4 var(--font-label);color:var(--primary)}h1{font:700 44px/1.08 var(--font-heading);color:var(--primary);margin:4px 0 8px}h2{font:500 26px/1.2 var(--font-heading);color:var(--ink);margin:0}.subtitle{color:var(--muted);max-width:720px;margin:0 0 32px}.subtitle strong{color:var(--ink);font-style:italic;font-weight:400}.meta{color:var(--muted);font-size:15px}.breadcrumb{font:14px/1.4 var(--font-label);color:var(--muted);margin:0 0 12px}.breadcrumb a{text-decoration:none}code{font:.85em var(--font-label)}.notice{background:var(--surface);color:var(--primary-dark);border-radius:16px;margin-bottom:24px;padding:14px 20px;font-size:16px}.notice.success{border:1px solid var(--accent);background:#e3f6ee}.notice.error{background:var(--error-bg);color:var(--error)}.button{border:1px solid var(--primary);background:var(--primary);color:#fff;min-height:44px;font:500 16px/1.2 var(--font-heading);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:10px;padding:10px 22px;text-decoration:none;display:inline-flex}.button:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.button.secondary{background:var(--card);border-color:var(--line-strong);color:var(--primary-dark)}.button.secondary:hover{border-color:var(--primary)}.button.ghost{color:var(--primary-dark);background:0 0;border-color:#0000}.button.small{min-height:36px;padding:6px 16px;font-size:14px}.button:disabled{opacity:.45;cursor:not-allowed}.enter-glyph{flex:none;width:16px;height:16px}.badge{background:var(--accent);color:var(--primary-dark);font:13px/1.6 var(--font-label);white-space:nowrap;border-radius:999px;padding:2px 12px;display:inline-block}.badge.muted{border:1px solid var(--line-strong);color:var(--muted);background:0 0}.panel,.report{background:var(--card);border:1px solid var(--line);border-radius:20px}.panel{padding:28px}.form-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;display:grid}.form-grid .wide,.form-actions{grid-column:1/-1}.form-grid .span-2{grid-column:span 2}@media (max-width:560px){.form-grid .span-2{grid-column:1/-1}}label{font:500 14px/1.3 var(--font-heading);color:var(--muted);flex-direction:column;gap:6px;display:flex}input,select{border:1px solid var(--line-strong);background:var(--card);width:100%;min-height:44px;color:var(--ink);font:16px var(--font-body);border-radius:12px;padding:10px 14px}input:focus,select:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:var(--primary)}fieldset.new-client{background:var(--surface);border:0;border-radius:16px;margin:0;padding:20px}fieldset.new-client legend{float:left;width:100%;font:14px var(--font-label);color:var(--primary);padding:0}fieldset.new-client .meta{margin:4px 0 16px}.form-actions{flex-wrap:wrap;gap:12px;padding-top:8px;display:flex}form.filters{flex-wrap:wrap;align-items:end;gap:16px;margin-bottom:24px;display:flex}form.filters label{min-width:180px}.report{overflow-x:auto}.report-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:16px;padding:24px 28px;display:flex}.actions{align-items:start;gap:8px;display:flex}table{border-collapse:collapse;width:100%;min-width:680px}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:12px 16px}th:first-child,td:first-child{padding-left:28px}th:last-child,td:last-child{padding-right:28px}th{font:500 13px/1.3 var(--font-heading);color:var(--muted)}td.num,td.date,.key{font:15px/1.5 var(--font-label);white-space:nowrap}td.num,th.num{text-align:right}.key{color:var(--primary)}tr.epic td{background:var(--surface);font-family:var(--font-heading);color:var(--primary-dark);font-weight:500}tr.epic td.num,tr.epic .key{font-family:var(--font-label);font-weight:400}tr.issue td:first-child{padding-left:44px}tr.worklog td{color:var(--muted);font-size:16px}tr.worklog td:first-child{color:var(--ink);padding-left:64px}.time-report td{font-family:var(--font-heading);font-weight:400}.time-report tr.epic td,.time-report tr.issue td:first-child{font-weight:500}.time-report td.num,.time-report td.date,.time-report .key{font-family:var(--font-label)}.key a{color:inherit;border-bottom:1px solid var(--pixel-himmel);text-decoration:none}.key a:hover{border-bottom-color:var(--primary)}tbody tr:last-child td{border-bottom:0}.row-actions{justify-content:flex-end;gap:8px;display:flex}.project-name{font-family:var(--font-heading);font-weight:500}.totals{border-top:1px solid var(--line);grid-template-columns:auto auto;justify-content:end;gap:6px 32px;padding:20px 28px;display:grid}.totals .label{color:var(--muted);font-size:16px}.totals .value{text-align:right;font:16px var(--font-label)}.totals .strong{color:var(--primary);font-size:18px}.empty{text-align:center;color:var(--muted);padding:48px 20px;font-style:italic}.invoice-bar{z-index:10;border:1px solid var(--line);background:var(--card);border-radius:20px;margin-bottom:20px;padding:14px 20px;position:sticky;top:12px;box-shadow:0 12px 32px #1f2a3624}.invoice-bar-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;display:flex}.invoice-bar-summary{flex-direction:column;gap:2px;min-width:0;display:flex}.invoice-bar-amount{font:18px/1.3 var(--font-label);color:var(--primary)}.invoice-bar .meta{font-size:14px}.invoice-bar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px 16px;display:flex}.invoice-bar .notice{margin:12px 0 0}@media (max-width:640px){.invoice-bar{padding:12px 14px;top:8px}.invoice-bar .meta{display:none}.invoice-bar-actions,.invoice-bar-actions .button{width:100%}.invoice-bar-actions .button{justify-content:center}}form.settings{flex-direction:column;gap:24px;display:flex}form.settings h2{margin:4px 0 6px}form.settings .panel>.meta{max-width:720px;margin:0 0 20px}table.mapping{min-width:0;max-width:640px}table.mapping th:first-child,table.mapping td:first-child{padding-left:0}table.mapping td{vertical-align:middle}table.mapping select{max-width:220px}.table-note{margin:12px 4px 0}main.login{max-width:520px;padding-top:72px}main.login .panel{flex-direction:column;gap:12px;padding:36px;display:flex}main.login .notice{margin:0}.link-button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.link-button:hover{color:var(--primary)}.site-footer{border-top:1px solid var(--line);background:var(--card)}.site-footer-inner{max-width:1120px;font:14px/1.4 var(--font-label);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin:0 auto;padding:20px 16px;display:flex}.site-footer a{color:var(--primary);text-decoration:none}.site-footer a:hover{text-decoration:underline}.project-group{margin-bottom:36px}.project-group h2{align-items:center;gap:10px;margin:0 0 12px;display:flex}.project-group .count{background:var(--surface);color:var(--primary-dark);font:14px/1.6 var(--font-label);border-radius:999px;padding:1px 10px}table.projects td{vertical-align:middle}table.projects .col-id{width:96px}table.projects td.project-name{font-size:17px}table.projects td.meta{font:14px var(--font-label)}.usage{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:6px;display:grid}.usage-month{border-radius:6px;flex-direction:column;align-items:stretch;gap:6px;text-decoration:none;display:flex}.usage-track{background:var(--ground);border-radius:6px;flex-direction:column;justify-content:flex-end;height:120px;display:flex;overflow:hidden}.usage.compact .usage-track{border-radius:3px;height:36px}.usage.compact{gap:3px;min-width:180px}.usage-billed{background:var(--primary)}.usage-open{background:var(--accent)}.usage-empty{background:var(--line-strong);height:2px}.usage-month:hover .usage-track,.usage-month.selected .usage-track{outline:2px solid var(--primary);outline-offset:2px}.usage-label{font:12px/1 var(--font-label);color:var(--muted);text-align:center}.usage-month.selected .usage-label{color:var(--primary)}.usage-legend{font:13px var(--font-label);color:var(--muted);flex-wrap:wrap;gap:16px;display:flex}.swatch{vertical-align:-1px;border-radius:3px;width:12px;height:12px;margin-right:4px;display:inline-block}.swatch.billed{background:var(--primary)}.swatch.open{background:var(--accent)}.usage-panel{margin-bottom:24px}.usage-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 24px;margin-bottom:20px;display:flex}.usage-kpi{font:40px/1.1 var(--font-label);letter-spacing:-.02em;color:var(--primary)}.usage-kpi span{font:400 16px var(--font-heading);letter-spacing:0;color:var(--muted)}.kpis{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:32px;display:grid}.kpi{border:1px solid var(--line);background:var(--card);border-radius:20px;padding:22px 26px}.kpi-value{font:44px/1.05 var(--font-label);letter-spacing:-.03em;color:var(--primary);margin:4px 0 2px}.kpi-value span{letter-spacing:0;font-size:22px}.group-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;margin-bottom:12px;display:flex}.group-head h2{margin:0}td.usage-cell{width:32%;min-width:200px}.open-hours{font:15px var(--font-label);color:var(--primary-dark);background:var(--accent);border-radius:999px;padding:1px 8px;display:inline-block}.client-name{font-family:var(--font-heading);font-weight:400}.period-picker{flex-wrap:wrap;align-items:center;gap:14px 24px;margin-bottom:24px;display:flex}.stepper{border:1px solid var(--line-strong);background:var(--card);border-radius:999px;align-items:center;gap:4px;padding:4px;display:inline-flex}.step{width:40px;height:40px;font:500 22px/1 var(--font-heading);color:var(--primary);border-radius:999px;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.step:hover{background:var(--surface)}.step.disabled{color:var(--line-strong)}.step-current{justify-content:center;align-items:center;gap:12px;min-width:230px;padding:0 8px;display:inline-flex}.step-label{font:18px/1 var(--font-label);color:var(--primary-dark)}.voided td{color:var(--muted)}.voided td.num,.voided td.date{text-decoration:line-through}.segmented{border:1px solid var(--line-strong);background:var(--card);border-radius:999px;padding:4px;display:inline-flex}.segmented a{font:500 15px/1.2 var(--font-heading);color:var(--primary-dark);border-radius:999px;padding:8px 18px;text-decoration:none}.segmented a.active{background:var(--primary);color:#fff}.period-picker form.filters{margin:0}.history{margin-top:40px}.history h2{margin:0 0 12px}.status{font:13px/1.6 var(--font-label);white-space:nowrap;border-radius:999px;padding:2px 12px;display:inline-block}.status.draft{background:var(--surface);color:var(--primary-dark)}.status.unpaid{color:#6b4a00;background:#fff1d6}.status.paid{background:var(--accent);color:var(--primary-dark)}.status.canceled,.status.deleted{background:var(--ground);border:1px solid var(--line-strong);color:var(--muted)}.status.billed-state{background:var(--surface);color:var(--primary-dark);padding:8px 16px}.inline-form{margin-left:10px;display:inline}.hint{font:400 13px/1.4 var(--font-heading);color:var(--muted)}.usage-before{background:repeating-linear-gradient(135deg, var(--ground) 0 4px, var(--line) 4px 5px);height:100%}.usage-month.before-start .usage-label{opacity:.5}.short-field{max-width:240px}.loading-state{border:1px solid var(--line);background:var(--card);border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:260px;margin-bottom:24px;padding:40px 20px;display:flex}.loading-state.compact{flex-direction:row;min-height:0;padding:24px}.loading-pixels{width:72px;height:48px;position:relative}.loading-state.compact .loading-pixels{width:44px;height:30px;transform:scale(.6)}.loading-pixels span{opacity:.25;width:18px;height:18px;animation:1.4s ease-in-out infinite pixel-pulse;position:absolute}.loading-pixels span:first-child{background:var(--pixel-nebel);animation-delay:0s;top:0;left:0}.loading-pixels span:nth-child(2){background:var(--pixel-himmel);animation-delay:.15s;top:0;left:18px}.loading-pixels span:nth-child(3){background:var(--pixel-lagune);animation-delay:.3s;top:18px;left:18px}.loading-pixels span:nth-child(4){background:var(--pixel-salbei);animation-delay:.45s;top:18px;left:36px}.loading-pixels span:nth-child(5){background:var(--ink);width:9px;height:9px;animation-delay:.6s;top:36px;left:54px}@keyframes pixel-pulse{0%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.loading-label{font:15px/1.4 var(--font-label);color:var(--muted)}@media (prefers-reduced-motion:reduce){.loading-pixels span{opacity:.8;animation:none}}.nav-progress{z-index:100;background:linear-gradient(90deg, var(--pixel-nebel), var(--pixel-himmel), var(--pixel-lagune), var(--pixel-salbei), var(--primary), var(--pixel-nebel));pointer-events:none;background-size:200% 100%;width:100%;height:4px;animation:1.2s linear infinite nav-progress;position:fixed;top:0;left:0}@keyframes nav-progress{0%{background-position:0 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.nav-progress{animation:none}}.tabs{border-bottom:1px solid var(--line-strong);flex-wrap:wrap;gap:4px 28px;margin:0 0 28px;display:flex}.tabs a{font:500 17px/1.2 var(--font-heading);color:var(--muted);border-bottom:3px solid #0000;margin-bottom:-1px;padding:12px 2px;text-decoration:none}.tabs a:hover{color:var(--primary)}.tabs a.active{border-bottom-color:var(--primary);color:var(--primary)}
