:root{--bg: #ffffff;--surface: #f7f8fa;--fg: #16181d;--muted: #5b6472;--border: #e2e5ea;--accent: #2f5cff;--accent-fg: #ffffff;--danger: #b42318;--danger-bg: #fef3f2;--running: #067647;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}@media(prefers-color-scheme:dark){:root{--bg: #14161a;--surface: #1c1f25;--fg: #e8eaed;--muted: #9aa3b0;--border: #2a2e36;--accent: #7c9bff;--accent-fg: #0d0f13;--danger: #ff9b8f;--danger-bg: #2a1614;--running: #4ade80}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg)}h1{font-size:1.4rem;margin:0 0 1rem}h2{font-size:1.05rem;margin:0 0 .75rem}.muted{color:var(--muted)}.small{font-size:.85rem}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.centered{min-height:100dvh;display:grid;place-content:center;gap:.75rem;text-align:center;padding:2rem}.shell>header{display:flex;align-items:center;gap:1rem;padding:.6rem 1.25rem;border-bottom:1px solid var(--border);background:var(--surface)}.shell>header nav{display:flex;gap:.25rem}.shell>header .spacer{margin-left:auto}.shell>main{padding:1.25rem}button{font:inherit;padding:.4rem .85rem;border:1px solid transparent;border-radius:.375rem;background:var(--accent);color:var(--accent-fg);cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:transparent;color:var(--fg);border-color:var(--border)}button.link{background:transparent;color:var(--muted);border-color:transparent}button.link--active{color:var(--fg);font-weight:600;border-bottom:2px solid var(--accent);border-radius:0}:is(button,input,select):focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select{font:inherit;padding:.35rem .5rem;border:1px solid var(--border);border-radius:.375rem;background:var(--bg);color:var(--fg)}.alert{background:var(--danger-bg);color:var(--danger);border:1px solid currentcolor;border-radius:.375rem;padding:.6rem .85rem;margin:0 0 1rem}.timesheet__header{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.timesheet__nav{display:flex;align-items:center;gap:.4rem}.timesheet__nav button{background:transparent;color:var(--fg);border-color:var(--border)}.timesheet__total{margin-left:auto;color:var(--muted)}.timesheet__total strong{color:var(--fg);font-size:1.1rem}.timesheet__scroll{overflow-x:auto;border:1px solid var(--border);border-radius:.5rem}.grid{border-collapse:collapse;width:100%;min-width:46rem}.grid th,.grid td{border-bottom:1px solid var(--border);padding:.4rem .5rem;text-align:center;font-weight:400}.grid thead th{background:var(--surface);font-size:.8rem;color:var(--muted)}.grid__day{display:block;text-transform:uppercase;letter-spacing:.04em}.grid__date{display:block;font-size:1rem;color:var(--fg)}.grid__rowhead{text-align:left;min-width:14rem;position:sticky;left:0;background:var(--bg)}.grid thead .grid__rowhead,.grid tfoot .grid__rowhead{background:var(--surface)}.grid__project{display:block;font-weight:500}.grid__weekend{background:color-mix(in srgb,var(--surface) 60%,transparent)}.grid__input{width:4.25rem;text-align:center;border-color:transparent;background:transparent}.grid__input:hover{border-color:var(--border)}.grid__locked{display:inline-block;width:4.25rem;color:var(--muted);cursor:not-allowed}.grid__total{font-weight:600}.grid__empty{padding:1.5rem;text-align:center}.grid tfoot td,.grid tfoot th{background:var(--surface);font-weight:600}.timerbar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.6rem .85rem;margin-bottom:1rem;border:1px solid var(--border);border-radius:.5rem;background:var(--surface)}.timerbar--running{border-color:var(--running)}.timerbar__dot{width:.6rem;height:.6rem;border-radius:50%;background:var(--running)}.timerbar__elapsed{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:600;margin-left:auto}.addrow{display:flex;align-items:end;gap:.75rem;flex-wrap:wrap;margin-top:1rem;padding:.85rem;border:1px solid var(--border);border-radius:.5rem}.addrow label{display:grid;gap:.25rem;font-size:.85rem;color:var(--muted)}.admin{max-width:60rem}.admin__panel{margin-bottom:2rem;padding:1rem;border:1px solid var(--border);border-radius:.5rem}.admin__form{display:flex;gap:.5rem;margin-bottom:1rem}.admin__list{margin:0;padding-left:1.1rem;display:grid;gap:.3rem}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:.4rem .5rem;border-bottom:1px solid var(--border)}.table thead th{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.toolbar{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem}.calendar{border:1px solid var(--border);border-radius:.5rem;padding:.85rem;margin-bottom:1rem;background:var(--surface);width:100%}.calendar__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.calendar__target{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.calendar__target label{display:grid;gap:.25rem;font-size:.85rem;color:var(--muted)}.calendar__list{list-style:none;margin:0;padding:0;display:grid;gap:.4rem;max-height:22rem;overflow-y:auto}.calendar__item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem .6rem;background:var(--bg);border:1px solid var(--border);border-radius:.375rem}.calendar__item--done{opacity:.55}.calendar code{font-size:.85em;padding:.1em .35em;background:var(--bg);border-radius:.25rem}.approvals,.expenses{max-width:68rem}.approvals__message{display:grid;gap:.25rem;font-size:.85rem;color:var(--muted);margin-bottom:1.25rem;max-width:40rem}.approvals__panel{border:1px solid var(--border);border-radius:.5rem;padding:1rem;margin-bottom:1.5rem}.approvals__panelhead{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.approvals__panelhead h2{margin:0}.approvals__actions{display:flex;gap:.5rem}.approvals__list{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}.approvals__list>li{display:flex;align-items:center;gap:.5rem;border-bottom:1px solid var(--border);padding:.35rem 0}.approvals__row{display:flex;align-items:center;gap:.75rem;flex:1;cursor:pointer}.approvals__primary{min-width:14rem}.approvals__secondary{flex:1}.approvals__value{font-variant-numeric:tabular-nums;font-weight:600}.approvals__history{border:1px solid var(--accent);border-radius:.5rem;padding:1rem;background:var(--surface)}.approvals__timeline{margin:0;padding-left:1.2rem;display:grid;gap:.5rem}.notice{background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid var(--accent);border-radius:.375rem;padding:.6rem .85rem;margin:0 0 1rem}.entryform{display:flex;gap:.75rem;flex-wrap:wrap;align-items:end;padding:.85rem;margin-bottom:1rem;border:1px solid var(--border);border-radius:.5rem;background:var(--surface)}.entryform label{display:grid;gap:.25rem;font-size:.85rem;color:var(--muted)}.entryform input:not([type=checkbox]),.entryform select{min-width:8rem}.entryform__check{display:flex;align-items:center;gap:.4rem;padding-bottom:.45rem}.chip{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.78rem;border:1px solid var(--border);text-transform:capitalize}.chip--submitted{border-color:var(--accent);color:var(--accent)}.chip--approved{border-color:var(--running);color:var(--running)}.chip--rejected{border-color:var(--danger);color:var(--danger)}.team__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(22rem,1fr));gap:1.5rem}.team h3{font-size:.95rem;margin:0 0 .5rem}.invoices__actions{display:flex;gap:.5rem;white-space:nowrap}.invoices__totals{margin-top:1rem;margin-left:auto;max-width:22rem;display:grid;gap:.35rem}.invoices__totals>div{display:flex;justify-content:space-between;gap:2rem}.invoices__gross{border-top:1px solid var(--border);padding-top:.4rem;font-size:1.05rem}.chip--draft{color:var(--muted)}.chip--issued,.chip--sent{border-color:var(--accent);color:var(--accent)}.chip--paid{border-color:var(--running);color:var(--running)}.chip--cancelled{border-color:var(--danger);color:var(--danger);text-decoration:line-through}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.75rem;margin-bottom:1.5rem}.tile{border:1px solid var(--border);border-radius:.5rem;padding:.85rem 1rem;background:var(--surface);display:grid;gap:.2rem}.tile__label{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.tile__value{font-size:1.5rem;font-weight:600;font-variant-numeric:tabular-nums}.budget{display:flex;align-items:center;gap:.5rem}.budget__track{flex:1;min-width:4rem;height:.45rem;border-radius:999px;background:var(--border);overflow:hidden}.budget__fill{display:block;height:100%;background:var(--accent)}.budget--over .budget__fill{background:var(--danger)}.budget--over .budget__label{color:var(--danger);font-weight:600}.budget__label{font-variant-numeric:tabular-nums;min-width:2.75rem;text-align:right}
