:root{--ground: #f4f5fa;--surface: #ffffff;--ink: #191b2c;--ink-soft: #545879;--ink-faint: #7d82a0;--rule: #dcdeec;--accent: #9a6e17;--ok: #2f7d4f}@media(prefers-color-scheme:dark){:root{--ground: #121425;--surface: #1b1e34;--ink: #eceef8;--ink-soft: #a0a5c4;--ink-faint: #7c82a5;--rule: #2c3052;--accent: #e4b85e;--ok: #64c98a}}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:var(--ground);color:var(--ink);font-family:IBM Plex Sans,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}.shell{max-width:46rem;margin:0 auto;padding:0 1.5rem 4rem}.bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--rule)}.mark{font-weight:600;letter-spacing:-.01em}.who{font-size:.88rem;color:var(--ink-soft)}.hero{padding-top:3.5rem;display:flex;flex-direction:column;gap:1rem;align-items:flex-start}h1{font-size:clamp(1.9rem,5vw,2.6rem);line-height:1.1;margin:0;letter-spacing:-.02em;text-wrap:balance}.lead{margin:0;color:var(--ink-soft);max-width:40ch}.muted{color:var(--ink-faint)}.facts{margin:1.5rem 0 0;display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);width:100%}.facts>div{background:var(--surface);padding:.85rem 1rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.facts dt{color:var(--ink-faint);font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.facts dd{margin:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.88rem}.facts .ok{color:var(--ok)}.centered{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.panel{background:var(--surface);border:1px solid var(--rule);padding:1.75rem;max-width:26rem;display:flex;flex-direction:column;gap:.75rem}.panel h1{font-size:1.3rem}.panel p{margin:0;color:var(--ink-soft)}button{align-self:flex-start;font:inherit;font-weight:500;color:var(--ground);background:var(--ink);border:1px solid var(--ink);padding:.5rem 1rem;cursor:pointer}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.45;cursor:not-allowed}a.mark{color:inherit;text-decoration:none}.cta{align-self:flex-start;display:inline-block;margin-top:.5rem;font-weight:500;color:var(--ground);background:var(--ink);border:1px solid var(--ink);padding:.5rem 1rem;text-decoration:none}.cta:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.link{align-self:flex-start;background:none;border:none;color:var(--ink-soft);padding:.5rem 0;text-decoration:underline;text-underline-offset:3px}.form{margin-top:1.5rem;width:100%;max-width:30rem;display:flex;flex-direction:column;gap:1.25rem}.form label{display:flex;flex-direction:column;gap:.35rem}.form label>span{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint)}.form input,.form select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--rule);padding:.55rem .7rem;width:100%}.form input:focus-visible,.form select:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.form small{color:var(--ink-faint);font-size:.8rem}.form code{font-family:ui-monospace,SF Mono,Menlo,monospace}.shell.wide{max-width:62rem}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:.5rem 0 0}.cta.small{padding:.35rem .75rem;font-size:.88rem}.cta.ghost{background:none;color:var(--ink);border-color:var(--rule)}.listing{padding-top:2.5rem;display:flex;flex-direction:column;gap:1.5rem}.listing-head{display:flex;flex-direction:column;gap:.3rem}.listing-head h1{font-size:clamp(1.6rem,4vw,2.1rem)}.listing-head p{margin:0;font-size:.9rem}.search{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--rule);padding:.6rem .8rem;width:100%;max-width:26rem}.search:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.bar-right{display:flex;align-items:center;gap:1rem}.toolbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.client{display:flex;flex-direction:column}.client h2{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;margin:0;padding-bottom:.4rem;border-bottom:1px solid var(--rule);font-size:1.02rem;font-weight:600}.client .disclosure{align-self:auto;display:flex;align-items:baseline;gap:.5rem;background:none;border:none;padding:.35rem 0;margin:0;color:var(--ink);font:inherit;font-weight:600;cursor:pointer;text-align:left}.client .disclosure:hover .client-name{color:var(--accent)}.client .chevron{display:inline-block;color:var(--ink-faint);font-size:1.05rem;line-height:1;transition:transform .12s ease}.client .chevron.open{transform:rotate(90deg)}.client .meta{font-size:.8rem;font-weight:400;color:var(--ink-faint);font-variant-numeric:tabular-nums}.projects{list-style:none;margin:0;padding:0}.projects li{display:grid;grid-template-columns:1fr auto auto auto;gap:.5rem 1rem;align-items:baseline;padding:.5rem 0;border-bottom:1px solid var(--rule);font-size:.92rem}.projects li:last-child{border-bottom:none}.projects .row-main{display:grid;grid-template-columns:7.5rem 1fr;gap:1rem;align-items:baseline;min-width:0;color:inherit;text-decoration:none}.projects .row-main:hover .title,.projects .row-main:focus-visible .title{color:var(--accent);text-decoration:underline}.projects .num{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.84rem;color:var(--accent);font-variant-numeric:tabular-nums}.projects .title{min-width:0;overflow-wrap:anywhere}.projects .tasks,.projects .time{font-size:.82rem;color:var(--ink-faint);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.projects .open{font-size:.8rem;color:var(--ink-faint);text-decoration:none;white-space:nowrap}.projects .open:hover,.projects .open:focus-visible{color:var(--accent);text-decoration:underline}.empty-clients .names{font-size:.85rem;line-height:1.8;margin:.4rem 0 0}@media(max-width:40rem){.projects li{grid-template-columns:1fr;row-gap:.15rem}.projects .row-main{grid-template-columns:6rem 1fr;gap:.6rem}.projects .tasks,.projects .time,.projects .open{grid-column:1;text-align:left}.tasks-list li{grid-template-columns:1fr;row-gap:.3rem}.tasks-list .status,.tasks-list .time{justify-self:start;text-align:left}}.crumbs{padding-top:1.25rem}.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem .4rem;font-size:.82rem}.crumbs li{display:flex;align-items:baseline;gap:.4rem}.crumbs a{color:var(--ink-faint);text-decoration:none}.crumbs a:hover,.crumbs a:focus-visible{color:var(--accent);text-decoration:underline}.crumbs span[aria-current=page]{color:var(--ink);font-weight:500}.crumbs .sep{color:var(--rule)}.client-open{color:var(--ink-faint);text-decoration:none}.client-open:hover,.client-open:focus-visible{color:var(--accent);text-decoration:underline}.group-link{color:inherit;text-decoration:none}.group-link:hover,.group-link:focus-visible{color:var(--accent);text-decoration:underline}.task-name.link{color:inherit;text-decoration:none}.task-name.link:hover,.task-name.link:focus-visible{color:var(--accent);text-decoration:underline}.status-editor{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:1rem 1.1rem;background:var(--surface);border:1px solid var(--rule)}.status-editor label{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint)}.status-editor select{font:inherit;color:var(--ink);background:var(--ground);border:1px solid var(--rule);padding:.4rem .6rem}.status-editor select:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.status-editor select:disabled{opacity:.5}.small-note{font-size:.8rem}.add-row{display:flex;flex-direction:column;gap:.5rem;padding:.5rem 0}.inline-form{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.inline-form input{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--rule);padding:.45rem .6rem;min-width:16rem;flex:1 1 16rem}.inline-form input:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.inline-form button[type=submit]{align-self:auto;padding:.45rem .9rem;font-size:.9rem}.ok{color:var(--ok)}.pad{padding-top:2.5rem}.detail{padding-top:2.5rem;display:flex;flex-direction:column;gap:2rem}.detail-head{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}.detail-head h1{font-size:clamp(1.5rem,4vw,2rem);margin:0}.detail-head p{margin:0;font-size:.9rem}.detail-head .cta{margin-top:.6rem}.num.big{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9rem;letter-spacing:.04em;color:var(--accent)}.group{display:flex;flex-direction:column}.group h2{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;margin:0 0 .2rem;padding-bottom:.4rem;border-bottom:1px solid var(--rule);font-size:1rem;font-weight:600}.group .meta{font-size:.8rem;font-weight:400;color:var(--ink-faint);font-variant-numeric:tabular-nums}.empty-row{font-size:.88rem;padding:.6rem 0;margin:0}.tasks-list{list-style:none;margin:0;padding:0}.tasks-list li{display:grid;grid-template-columns:1fr auto auto;gap:.5rem 1rem;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--rule);font-size:.92rem}.tasks-list li:last-child{border-bottom:none}.tasks-list .task-name{min-width:0;overflow-wrap:anywhere;display:flex;flex-direction:column;gap:.1rem}.tasks-list .task-name .ctx{font-size:.78rem;color:var(--ink-faint)}.tasks-list .time{font-size:.82rem;color:var(--ink-faint);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.status{justify-self:end;font-size:.76rem;font-weight:600;letter-spacing:.01em;padding:.2rem .55rem;border-radius:3px;white-space:nowrap;color:#fff;background:#7a8095}.status[data-status=none]{color:var(--ink-faint);background:none;border:1px dashed var(--rule);font-weight:400}.weeknav{display:inline-flex;gap:.35rem}.weeknav button{align-self:auto;background:var(--surface);color:var(--ink);border:1px solid var(--rule);padding:.4rem .7rem;font-size:.88rem}.weeknav button:hover{border-color:var(--accent);color:var(--accent)}.toolbar select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--rule);padding:.45rem .6rem}.toolbar select:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.day{display:flex;flex-direction:column}.day h2{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin:0 0 .2rem;padding-bottom:.4rem;border-bottom:1px solid var(--rule);font-size:.98rem;font-weight:600}.day .meta{font-size:.85rem;font-weight:500;color:var(--ink-faint);font-variant-numeric:tabular-nums}.entries{list-style:none;margin:0;padding:0}.entries li{display:grid;grid-template-columns:7.5rem 1fr auto;gap:.4rem 1rem;align-items:baseline;padding:.45rem 0;border-bottom:1px solid var(--rule);font-size:.9rem}.entries li:last-child{border-bottom:none}.entries .clock{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem;color:var(--ink-faint);font-variant-numeric:tabular-nums;white-space:nowrap}.entries .where{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem .55rem;min-width:0}.entries .ctx{color:var(--ink-faint);font-size:.82rem}.entries .num{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.78rem;color:var(--accent)}.entries .task-name{overflow-wrap:anywhere}.entries .time{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:.85rem}.tag.personal{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);border:1px solid var(--rule);border-radius:3px;padding:.05rem .35rem}@media(max-width:40rem){.entries li{grid-template-columns:1fr auto}.entries .clock{grid-column:1/-1}}.status[data-status=to_be_started]{background:#d0656e}.status[data-status=in_progress]{background:#e1804f}.status[data-status=with_client]{background:#c9992f}.status[data-status=completed]{background:#3f9c62}.status[data-status=to_be_invoiced]{background:#5b87dc}.status[data-status=cross_checked]{background:#9a68cc}.status[data-status=invoiced]{background:#7c5fcc}.error{margin:0;color:#b3261e;font-size:.9rem}@media(prefers-color-scheme:dark){.error{color:#f2b8b5}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
