:root{--canvas:#0f0e0c;--surface:#141312;--card:#1a1917;--elevated:#222120;--hairline:#2a2825;--hairline-strong:#37342f;--control-border:#6b655c;--control-border-hover:#8a8680;--ink:#faf9f5;--body:#c8c4bc;--muted:#8a8680;--faint:#6b6862;--coral:#cc785c;--coral-active:#a9583e;--teal:#5db8a6;--danger:#e2554f;--danger-dim:#e2554f1f;--danger-text:#eb8a84;--danger-text-strong:#f4b5b0;--font-ui:system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--font-mono:"Cascadia Mono", Consolas, "SF Mono", Menlo, ui-monospace, monospace;--fs-micro:.786rem;--fs-caption:.821rem;--fs-label:.857rem;--fs-note:.893rem;--fs-meta:.929rem;--fs-body:.964rem;--fs-text:1rem;--fs-control:1.036rem;--fs-strong:1.071rem;--fs-lead:1.143rem;--fs-h3:1.179rem;--fs-h2:1.321rem;--fs-h1:1.679rem;--fs-stat-sub:2.036rem;--fs-stat:2.857rem;font-family:var(--font-ui);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scrollbar-color:var(--hairline-strong) var(--canvas);font-size:14px;line-height:1.45}*{box-sizing:border-box}body{background:var(--canvas);color:var(--body);font-size:var(--fs-lead);margin:0}:focus-visible{outline:2px solid var(--coral);outline-offset:2px;border-radius:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}}.app{grid-template:"header main""nav main"1fr"keys main"/14.5rem minmax(0,1fr);min-height:100vh;display:grid}.app-header{background:var(--surface);border-right:1px solid var(--hairline);grid-area:header;padding:1.35rem 1.1rem 1rem}.app-header h1{font:400 var(--fs-h2) / 1.1 var(--font-display);letter-spacing:.005em;color:var(--ink);margin:0}.app-nav{background:var(--surface);border-right:1px solid var(--hairline);grid-area:nav;padding:.35rem .6rem 1.5rem}.nav-group+.nav-group{margin-top:1.15rem}.nav-group-label{font-size:var(--fs-label);letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:0 0 .3rem;padding:0 .5rem;font-weight:600}.app-nav ul{margin:0;padding:0;list-style:none}.app-nav button{text-align:left;width:100%;color:var(--body);font:inherit;font-size:var(--fs-control);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:.34rem .5rem;transition:background .1s ease-out,color .1s ease-out;display:block}.app-nav button:hover{background:var(--elevated);color:var(--ink)}.app-nav button[aria-current=page]{background:var(--elevated);color:var(--ink);box-shadow:inset 2px 0 0 var(--coral);font-weight:600}.quickref{background:var(--surface);border-right:1px solid var(--hairline);border-top:1px solid var(--hairline);grid-area:keys;padding:.9rem .95rem 1.15rem}.quickref-title{font:400 var(--fs-text) / 1.2 var(--font-display);color:var(--body);margin:0 0 .6rem}.quickref-group+.quickref-group{margin-top:.65rem}.quickref-label{font-size:var(--fs-micro);letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:0 0 .2rem;font-weight:600}.quickref-label-current{color:var(--coral)}.quickref-list{margin:0}.quickref-row{grid-template-columns:4rem minmax(0,1fr);align-items:baseline;gap:0 .5rem;display:grid}.quickref-row dt,.quickref-row dd{margin:0}.quickref-row dd{font-size:var(--fs-note);color:var(--muted);line-height:1.5}.quickref kbd{font:400 var(--fs-label) / 1.5 var(--font-mono);color:var(--body);white-space:nowrap}.quickref-note{font-size:var(--fs-caption);color:var(--muted);margin:.2rem 0 0;line-height:1.4}.app-main{grid-area:main;min-width:0;max-width:120rem;padding:1.9rem 2.25rem 5rem;overflow-x:auto}.screen{min-width:0}.screen>h2{font:400 var(--fs-h1) / 1.15 var(--font-display);letter-spacing:-.01em;color:var(--ink);margin:0 0 1.4rem}.app-main>.screen+.screen{border-top:1px solid var(--hairline-strong);margin-top:2.75rem;padding-top:2.25rem}.screen-status{font-size:var(--fs-text);color:var(--muted);margin:.9rem 0}.screen-status-error{border-inline-start:2px solid var(--danger);background:var(--danger-dim);color:var(--danger-text-strong);padding:.55rem .8rem}.screen-empty{border-top:1px solid var(--hairline);font-size:var(--fs-text);color:var(--muted);margin:0;padding:1.4rem 0}.screen>p[role=alert]{border-inline-start:2px solid var(--danger);background:var(--danger-dim);font-size:var(--fs-text);color:var(--danger-text-strong);margin:.75rem 0;padding:.5rem .75rem}button{font:500 var(--fs-body) / 1.25 var(--font-ui);color:var(--body);background:var(--card);border:1px solid var(--control-border);cursor:pointer;border-radius:3px;padding:.36rem .7rem;transition:background .1s ease-out,border-color .1s ease-out,color .1s ease-out}button:hover:not(:disabled){background:var(--elevated);border-color:var(--control-border-hover);color:var(--ink)}button:disabled{opacity:.42;cursor:not-allowed}button[type=submit],.btn-primary{background:var(--coral);border-color:var(--coral);color:#17100c;font-weight:600}button[type=submit]:hover:not(:disabled),.btn-primary:hover:not(:disabled){background:var(--coral-active);border-color:var(--coral-active);color:var(--ink)}.table td button,.chip button,.date-nav button,.dashboard-week-nav button{color:var(--muted);font-size:var(--fs-note);background:0 0;border-color:#0000;padding:.2rem .45rem;font-weight:500}.table td button:hover:not(:disabled),.chip button:hover:not(:disabled),.date-nav button:hover:not(:disabled),.dashboard-week-nav button:hover:not(:disabled){background:var(--elevated);border-color:var(--control-border);color:var(--ink)}.table td button+button{margin-left:.1rem}.btn-danger,.table td .btn-danger{color:var(--danger-text)}.btn-danger:hover:not(:disabled),.table td .btn-danger:hover:not(:disabled){background:var(--danger-dim);border-color:var(--danger);color:var(--danger-text-strong)}input,select,textarea{font:inherit;font-size:var(--fs-body);color:var(--ink);background:var(--card);border:1px solid var(--control-border);border-radius:3px;padding:.36rem .5rem;transition:border-color .1s ease-out}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--control-border-hover)}input:disabled,select:disabled,textarea:disabled{color:var(--muted);background:var(--surface);cursor:not-allowed}textarea{resize:vertical;line-height:1.5}input[type=radio],input[type=checkbox]{accent-color:var(--coral);background:0 0;border:0;border-radius:0;width:auto;padding:0}input[type=date],input[type=month],input[inputmode=numeric],input[inputmode=decimal]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}::placeholder{color:var(--faint)}.form{background:var(--surface);border:1px solid var(--hairline);border-radius:4px;flex-wrap:wrap;align-items:flex-start;gap:.9rem 1.2rem;margin:0 0 1.6rem;padding:1.1rem 1.25rem 1.2rem;display:flex}.field{flex-direction:column;gap:.25rem;min-width:0;display:flex}.field:has(select){flex:13rem;max-width:22rem}.field:has(textarea){flex:100%}.field:has(#entry-end-time){flex:26rem;max-width:34rem}:is(.field:has(#entry-start-time) input,.field:has(#entry-end-time) input){width:6rem}.field label,.form fieldset.field legend{font-size:var(--fs-label);letter-spacing:.02em;color:var(--muted);font-weight:500}.field input[aria-invalid=true],.field select[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--danger)}.form fieldset.field{border:0;margin:0;padding:0;display:block}.form fieldset.field legend{margin-bottom:.42rem;padding:0;display:block}.form fieldset.field>span{font-size:var(--fs-body);color:var(--body);align-items:center;gap:.32rem;margin-right:.9rem;display:inline-flex}.form fieldset.field>span label{font-size:var(--fs-body);color:var(--body);cursor:pointer}.field-hint{font-size:var(--fs-note);color:var(--muted);margin:0;line-height:1.4}.form>.field-hint,.form>.form-error{flex:100%}.form>.field-hint strong{color:var(--body);font-weight:600}.field-error,.form-error{font-size:var(--fs-note);color:var(--danger-text);margin:0;line-height:1.4}.form-actions{align-items:center;gap:.5rem;display:flex}.form>.form-actions{border-top:1px solid var(--hairline);flex:100%;margin-top:.35rem;padding-top:.95rem}.screen>.form-actions{vertical-align:top;margin-bottom:1.4rem;display:inline-flex}.date-nav{background:var(--surface);border:1px solid var(--hairline);vertical-align:top;border-radius:4px;align-items:center;gap:.3rem;margin:0 .9rem 1.4rem 0;padding:.28rem .3rem;display:inline-flex}.date-nav input{background:0 0;border-color:#0000}.filters:not(.dashboard-competence):not(.finance-competence){background:var(--surface);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);margin:0 -2.25rem 1.75rem;padding:1rem 2.25rem .85rem}.filters-row{flex-wrap:wrap;align-items:center;gap:.5rem 1.1rem;display:flex}.filters-row~.filters-row{margin-top:.7rem}.filters label{font-size:var(--fs-label);color:var(--muted);font-weight:500}.filters-row>label+input,.filters-row>label+select{margin-right:.35rem}.filters-row>span{font-size:var(--fs-note);color:var(--muted)}.filters>p[role=alert]{font-size:var(--fs-meta);color:var(--danger-text);margin:.6rem 0 0}.filters-chips{border-top:1px dashed var(--hairline);font-size:var(--fs-note);color:var(--muted);flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.85rem;padding-top:.7rem;display:flex}.chip{background:var(--card);border:1px solid var(--control-border);color:var(--body);border-radius:2px;align-items:center;gap:.15rem;padding:.12rem .15rem .12rem .5rem;display:inline-flex}.chip button{font-size:var(--fs-control);padding:0 .32rem;line-height:1.1}.dashboard-competence,.finance-competence{background:0 0;border:0;margin:0 0 1.75rem;padding:0}.dashboard-competence .filters-row,.finance-competence .filters-row{gap:.5rem .8rem}.dashboard-competence label,.finance-competence label{font-size:var(--fs-label);letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:600}.dashboard-competence .field-hint,.finance-competence .field-hint{max-width:46rem;margin-top:.45rem}.stepper{background:var(--card);border:1px solid var(--control-border);border-radius:3px;align-items:stretch;display:inline-flex;overflow:hidden}.stepper input{font-size:var(--fs-control);background:0 0;border:0;border-radius:0;padding:.34rem .55rem}.stepper button{border:0;border-inline:1px solid var(--control-border);background:var(--surface);color:var(--muted);border-radius:0;padding:.3rem .7rem;line-height:1.2}.stepper button:first-child{border-inline-start:0}.stepper button:last-child{border-inline-end:0}.stepper button:hover:not(:disabled){background:var(--elevated);color:var(--ink)}.stepper :focus-visible{outline-offset:-2px}.table{border-collapse:collapse;width:100%;font-size:var(--fs-body)}.table caption{text-align:left}.table th,.table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--hairline);padding:.42rem .6rem}.table thead th{font-size:var(--fs-note);color:var(--muted);white-space:nowrap;border-bottom-color:var(--hairline-strong);font-weight:500}.table tbody tr:hover td{background:var(--surface)}.table td.numeric,.table th.numeric{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.table tr.inactive td{color:var(--muted)}.table tr.conflict td{background:var(--danger-dim);box-shadow:inset 2px 0 0 var(--danger)}.table tr.conflict td:first-child{box-shadow:inset 2px 0 0 var(--danger)}.table tfoot th,.table tfoot td{border-top:1px solid var(--hairline-strong);color:var(--ink);border-bottom:0;padding-top:.6rem;font-weight:600}.table tfoot td:not(.numeric){font-weight:400;font-size:var(--fs-note);color:var(--muted)}.table-entries th:nth-child(5),.table-entries td:nth-child(5){border-left:1px solid var(--hairline);padding-left:.75rem}.table-entries td:nth-child(3){overflow-wrap:anywhere;min-width:16rem}.table-entries td:nth-child(4){font-size:var(--fs-label);letter-spacing:.03em;color:var(--muted);white-space:nowrap}.table-entries td:last-child{white-space:nowrap}.badge{font-size:var(--fs-note);white-space:nowrap;background:0 0;border:0;align-items:center;gap:.4rem;padding:0;display:inline-flex}.badge:before{content:"";border-radius:1px;flex:none;width:.55rem;height:.55rem}.badge-draft{color:var(--muted)}.badge-draft:before{border:1px dashed var(--muted)}.badge-pending{color:var(--coral)}.badge-pending:before{border:1px solid var(--coral)}.badge-posted{color:var(--teal)}.badge-posted:before{background:var(--teal)}.inline-confirm{white-space:nowrap;align-items:center;gap:.4rem;display:inline-flex}.inline-confirm-question{font-size:var(--fs-note);color:var(--danger-text)}.table-entries tbody tr.selected td{background:var(--elevated);box-shadow:inset 2px 0 0 var(--coral)}.table-entries tbody tr.conflict.selected td{box-shadow:inset 2px 0 0 var(--danger)}.table-entries tbody tr:focus-visible{outline:2px solid var(--coral);outline-offset:-2px}.shortcuts-toggle{font-size:var(--fs-note);margin-top:.75rem;padding:.25rem .5rem}.privacy-toggle{font-size:var(--fs-note);align-items:center;gap:.4rem;margin-top:.75rem;padding:.25rem .5rem;display:inline-flex}.privacy-toggle[aria-pressed=true]{box-shadow:inset 2px 0 0 var(--coral);color:var(--ink)}.privacy-icon{opacity:.85;flex:none}.app-session{border-top:1px solid var(--hairline);margin-top:.9rem;padding-top:.75rem}.app-session-user{font-size:var(--fs-note);color:var(--muted);margin:0 0 .4rem;line-height:1.3}.logout{font-size:var(--fs-note);padding:.25rem .5rem}.auth-screen{background:var(--canvas);justify-content:center;align-items:center;min-height:100vh;padding:2rem 1.25rem;display:flex}.auth-card{width:min(24rem,100%);margin:0}.auth-card h1{font:400 var(--fs-h2) / 1.15 var(--font-display);color:var(--ink);margin:0 0 1rem}.auth-card .form>.field{flex:100%}.auth-checking{font-size:var(--fs-note);color:var(--muted);margin:0}.period-actions{justify-content:flex-end;margin:-.9rem 0 1.1rem;display:flex}.shortcuts-help{background:var(--card);border-bottom:1px solid var(--hairline-strong);grid-column:1/-1;margin:0;padding:1rem 1.25rem 1.25rem}.shortcuts-help h2{font:400 var(--fs-lead) / 1.2 var(--font-display);color:var(--ink);margin:0 0 .35rem}.shortcuts-help ul{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:.3rem 1.5rem;margin:.75rem 0 1rem;padding:0;list-style:none;display:grid}.shortcuts-help li{font-size:var(--fs-meta);color:var(--body);align-items:baseline;gap:.6rem;display:flex}.shortcuts-help kbd{font:400 var(--fs-note) / 1.6 var(--font-mono);color:var(--ink);background:var(--elevated);border:1px solid var(--hairline-strong);text-align:center;border-radius:3px;flex:0 0 8.4rem;padding:0 .35rem}.toast{z-index:10;max-width:26rem;font-size:var(--fs-meta);color:var(--ink);background:var(--elevated);border:1px solid var(--hairline-strong);border-left:3px solid var(--teal);border-radius:4px;align-items:center;gap:.75rem;padding:.6rem .75rem;display:flex;position:fixed;bottom:1.25rem;right:1.25rem}.toast-error{border-left-color:var(--danger);color:var(--danger-text-strong)}.toast button{background:0 0;border-color:#0000;padding:0 .35rem;line-height:1}.stat-cards{border-bottom:1px solid var(--hairline);flex-wrap:wrap;margin:0 0 2rem;padding-bottom:1.75rem;display:flex}.stat-card{flex-direction:column;gap:.35rem;min-width:12rem;padding-right:3rem;display:flex}.stat-card+.stat-card{border-left:1px solid var(--hairline);padding-left:3rem}.stat-card-value{font:400 var(--fs-stat) / 1 var(--font-mono);letter-spacing:-.035em;font-variant-numeric:tabular-nums;color:var(--ink);order:1}.stat-card-label{font-size:var(--fs-label);letter-spacing:.13em;text-transform:uppercase;color:var(--muted);order:2;font-weight:600}.stat-card-hint{font-size:var(--fs-note);color:var(--muted);order:3}.stat-card+.stat-card .stat-card-value{font-size:var(--fs-stat-sub);color:var(--body)}.dashboard-grid{flex-wrap:wrap;gap:2rem 3.5rem;display:flex}.dashboard-panel{flex:24rem;min-width:0}.screen>.dashboard-grid+.dashboard-panel,.screen>.dashboard-panel+.dashboard-panel{border-top:1px solid var(--hairline);margin-top:2rem;padding-top:1.75rem}.dashboard-recent h3{font:400 var(--fs-h3) / 1.2 var(--font-display);color:var(--ink);margin:0 0 .75rem}.dashboard-week-nav{align-items:center;gap:.4rem;margin-bottom:.7rem;display:flex}.dashboard-week-range{font-family:var(--font-mono);font-size:var(--fs-meta);font-variant-numeric:tabular-nums;color:var(--body)}.dashboard-week-total,.dashboard-trend-range{font-variant-numeric:tabular-nums;margin:.65rem 0 0}.dashboard-week-total{font-size:var(--fs-body);color:var(--body)}.dashboard-trend-range{font-size:var(--fs-note);color:var(--muted)}.chart{margin:0}.chart figcaption{font:400 var(--fs-h3) / 1.2 var(--font-display);color:var(--ink);margin-bottom:.7rem}.chart svg{display:block}.chart>p{border-top:1px solid var(--hairline);font-size:var(--fs-text);color:var(--muted);margin:0;padding:1.25rem 0}.chart-legend{font-size:var(--fs-meta);font-variant-numeric:tabular-nums;color:var(--body);flex-wrap:wrap;gap:.28rem 1.3rem;margin:.85rem 0 0;padding:0;list-style:none;display:flex}.chart-legend-muted{color:var(--muted)}.chart-swatch{vertical-align:baseline;border-radius:1px;width:.6rem;height:.6rem;margin-right:.4rem;display:inline-block}.pie-chart-area{display:inline-block;position:relative}.pie-slice{cursor:default;transition:opacity .12s ease-out}.pie-slice-active{opacity:.68}.chart-tooltip{z-index:1;background:var(--elevated);border:1px solid var(--control-border-hover);font-size:var(--fs-meta);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;border-radius:3px;align-items:baseline;gap:.55rem;margin-left:.6rem;padding:.35rem .55rem;display:flex;position:absolute;top:.25rem;left:100%;box-shadow:0 6px 16px #00000073}.chart-tooltip strong{color:var(--ink);font-weight:600}.chart-tooltip span{color:var(--body)}.period-day+.period-day{margin-top:2rem}.period-day h3{border-bottom:1px solid var(--hairline-strong);font:400 var(--fs-h3) / 1.2 var(--font-display);font-variant-numeric:tabular-nums;color:var(--ink);margin:0 0 .6rem;padding-bottom:.4rem}.period-total{border-top:1px solid var(--hairline-strong);font-size:var(--fs-strong);font-variant-numeric:tabular-nums;color:var(--ink);margin:1.75rem 0 0;padding-top:.95rem}.finance-readonly{font-size:var(--fs-note);color:var(--muted);margin:0 0 1.4rem}.finance-total{border-top:1px solid var(--hairline-strong);font-size:var(--fs-strong);font-variant-numeric:tabular-nums;color:var(--ink);margin:1.25rem 0 0;padding-top:.95rem}.rate-historical{font-family:var(--font-ui);font-size:var(--fs-label);color:var(--coral)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1400px){.app-main{padding:1.75rem 1.75rem 4rem}.filters:not(.dashboard-competence):not(.finance-competence){margin-inline:-1.75rem;padding-inline:1.75rem}}@media (width<=1200px){.app{grid-template-columns:12.5rem minmax(0,1fr)}.app-main{padding:1.5rem 1.25rem 4rem}.filters:not(.dashboard-competence):not(.finance-competence){margin-inline:-1.25rem;padding-inline:1.25rem}.table th,.table td{padding:.4rem .45rem}.table-entries td:nth-child(3){min-width:12rem}.stat-card{padding-right:2rem}.stat-card+.stat-card{padding-left:2rem}.quickref{padding-inline:.8rem}.quickref-row{grid-template-columns:4rem minmax(0,1fr)}}@media (height<=900px){.quickref{padding-block:.7rem .85rem}.quickref-title{margin-bottom:.45rem}.quickref-group+.quickref-group{margin-top:.5rem}.quickref-row dd,.quickref kbd{line-height:1.4}}@media (height<=760px){.quickref-group-row{display:none}}@media (height<=620px){.quickref{display:none}}@media (width<=900px){.quickref{display:none}.app{grid-template:"header""nav""main"1fr/minmax(0,1fr)}.app-header,.app-nav{border-right:0}.app-nav{border-bottom:1px solid var(--hairline)}.app-header{padding-bottom:.6rem}.app-nav{flex-wrap:wrap;gap:0 1.25rem;padding-bottom:.6rem;display:flex}.nav-group+.nav-group{margin-top:0}.app-nav ul{gap:.2rem;display:flex}.app-nav button{width:auto}.stat-cards{gap:1.25rem 0}.stat-card+.stat-card{border-left:0;padding-left:0}}
