:root{--paper:#f7f7f2;--surface:#fff;--ink:#263a32;--muted:#7c867e;--line:#e5e8e0;--green:#55786c;--soft:#edf2ed;--error:#9b4444;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}button{border:1px solid var(--line);border-radius:8px;background:white;padding:11px 18px;color:var(--ink);cursor:pointer;font-weight:500}button:hover{background:var(--soft)}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--ink);color:white;border-color:var(--ink)}.primary:hover{background:var(--green)}.quiet{background:transparent;border:0;padding:9px 10px}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #b8cbbc;outline-offset:3px}[hidden]{display:none!important}
.site-header{max-width:1280px;margin:auto;padding:28px 40px;display:flex;align-items:center;gap:26px;border-bottom:1px solid var(--line)}.brand{font-family:Georgia,serif;font-size:38px;letter-spacing:-2px;color:var(--ink)}.brand:hover{text-decoration:none}.brand-dot{color:#b48759}.tagline{font-size:12px;color:var(--muted)}nav{display:flex;gap:8px;margin:auto}nav a{padding:10px 18px;color:var(--muted);border-radius:7px;font-size:14px}nav a.active{background:#e9eee6;color:var(--ink)}main{max-width:1200px;margin:auto;padding:30px 40px 50px}.connection{font-size:13px;color:var(--muted);min-height:20px;display:flex;align-items:center;gap:7px}.connection:before{content:'';width:6px;height:6px;border-radius:50%;background:#b48759}.connection.online:before{background:var(--green)}.page-heading{display:flex;justify-content:space-between;align-items:center;margin:35px 0 32px;gap:20px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;color:var(--green);margin:0 0 15px}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(32px,4vw,44px);font-weight:400;letter-spacing:-1px;margin:0 0 12px}h2{font-size:16px;font-weight:550;margin:0}p{line-height:1.6}.muted{color:var(--muted);font-size:13px}.page-heading p:last-child{margin-bottom:0}.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:28px}.timer-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:22px}.timer-panel{text-align:center;display:flex;flex-direction:column;align-items:center;min-height:365px;padding-top:38px;background:linear-gradient(150deg,#fff,#fcfdf9)}.timer-status{font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center}.status-dot{height:7px;width:7px;border-radius:50%;background:#c0c7bd}.status-dot.running{background:var(--green);box-shadow:0 0 0 4px #edf2ed}.clock{font-size:clamp(48px,6.2vw,76px);font-weight:300;letter-spacing:-3px;font-variant-numeric:tabular-nums;margin:26px 0 3px}.timer-controls{display:flex;gap:12px;margin:18px 0 30px}.timer-controls button{min-width:120px}.timer-footer{width:100%;display:flex;justify-content:space-between;margin-top:auto;padding-top:20px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}label{display:block;font-size:12px;font-weight:500;margin:18px 0 8px}input,textarea,select{width:100%;border:1px solid var(--line);background:#fafbf8;border-radius:7px;padding:11px 12px;color:var(--ink)}textarea{resize:vertical}.field-hint{font-size:11px;color:var(--muted);margin:8px 0 16px}.details-panel .eyebrow{margin-bottom:24px}.rate-row{display:flex;justify-content:space-between;font-size:12px;margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:30px 0 18px}.section-heading a{font-size:12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:20px 0 28px}.stat{padding:24px 26px;border:1px solid var(--line);border-radius:10px;background:#fff}.stat-label{font-size:11px;color:var(--muted)}.stat-value{display:block;font-size:30px;font-weight:400;letter-spacing:-1px;margin:12px 0 8px;font-variant-numeric:tabular-nums}.stat-note{font-size:11px;color:var(--muted)}.entry-list{padding:4px 24px}.entry{display:flex;align-items:center;gap:13px;border-bottom:1px solid var(--line);padding:18px 0}.entry:last-child{border:0}.swatch{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--colour)}.entry-main{flex:1;min-width:0}.entry-title{font-size:13px}.entry-description{font-size:12px;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}.entry-meta{text-align:right;font-size:12px;min-width:85px}.entry-meta small{display:block;font-size:10px;color:var(--muted);margin-top:6px}.entry .quiet{font-size:11px;padding:7px}.empty{padding:30px 8px;text-align:center;color:var(--muted);font-size:13px;line-height:1.7}.filters{display:flex;gap:18px;align-items:flex-end;padding:16px 22px;margin-bottom:22px}.filters label{margin:0;flex:1}.filters input,.filters select{margin-top:7px}.filters button{flex-shrink:0}.chart-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:22px}.chart-grid .section-heading{margin-top:0}.rhythm{height:210px;display:flex;align-items:stretch;gap:5px;padding-top:15px;border-bottom:1px solid var(--line)}.bar-column{flex:1;min-width:3px;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;position:relative}.bar-stack{display:flex;flex-direction:column-reverse;border-radius:4px 4px 0 0;overflow:hidden;min-height:2px;background:#f0f2ed}.bar-segment{background:var(--colour);min-height:1px}.bar-column .bar-label{position:absolute;top:100%;font-size:9px;color:var(--muted);margin-top:7px;white-space:nowrap}.chart-footnote{font-size:10px;color:var(--muted);margin-top:28px}.breakdown-row{margin:24px 0}.breakdown-label{display:flex;gap:8px;align-items:center;font-size:12px;margin-bottom:10px}.breakdown-label strong{margin-left:auto;font-weight:500}.track{height:6px;background:#eef0e9;border-radius:5px;overflow:hidden}.track-fill{height:100%;background:var(--colour);border-radius:5px}.activity-panel{margin-top:22px}.activity-panel .section-heading{margin-top:0}.year-label{display:flex;align-items:center;gap:8px;margin:0;color:var(--muted)}.year-label select{width:90px;padding:6px}.heatmap{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,1fr);gap:4px;overflow-x:auto;padding:3px;min-height:92px}.heat-cell,.heat-footer i{display:block;background:color-mix(in srgb,var(--green) calc(var(--level)*21%),#edf0e9);border-radius:2px;min-width:10px;aspect-ratio:1}.heat-cell{width:100%;padding:0;border:0}.heat-footer{display:flex;justify-content:space-between;gap:15px;font-size:10px;color:var(--muted);margin-top:18px}.heat-footer>span:last-child{display:flex;align-items:center;gap:4px;white-space:nowrap}.heat-footer i{width:10px;min-width:10px}.project-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.project-card .section-heading{margin:0 0 22px}.project-card h2{display:flex;gap:10px;align-items:center}.project-money{font-family:Georgia,serif;font-size:35px;margin:10px 0}.project-money.negative{color:var(--error)}.project-sub{font-size:12px;color:var(--muted);margin-bottom:22px}.budget-meta{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin:10px 0 23px}.project-facts{display:flex;justify-content:space-between;padding:18px 0;border-top:1px solid var(--line);font-size:12px}.project-actions{display:flex;gap:8px;flex-wrap:wrap}.project-actions button{font-size:11px;padding:8px 10px}.funding-list{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}.funding-item{display:flex;align-items:center;gap:8px;font-size:11px;padding:7px 0}.funding-item span:first-child{flex:1}.site-footer{max-width:1200px;margin:auto;padding:22px 40px 32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:14px;padding:28px;width:min(480px,calc(100% - 32px));color:var(--ink);max-height:90vh}dialog::backdrop{background:#1c312d55;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.error{color:var(--error);font-size:12px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);padding:13px 20px;background:var(--ink);color:#fff;border-radius:9px;font-size:13px;box-shadow:0 5px 25px #0002;z-index:10}.dialog-copy{font-size:13px;color:var(--muted)}.danger{color:var(--error)}.form-row{display:flex;gap:14px}.form-row>*{flex:1;min-width:0}.table-note{font-size:11px;color:var(--muted);margin:0 0 12px}
@media(max-width:800px){.tagline{display:none}.site-header{padding:20px;gap:10px}.brand{font-size:32px}nav{gap:0}nav a{padding:9px 12px;font-size:12px}.site-header>button{font-size:11px;padding:8px}main{padding:20px}.timer-grid,.chart-grid{grid-template-columns:1fr}.timer-panel{min-height:330px}.clock{font-size:64px}.page-heading{margin-top:22px}.page-heading>button{font-size:11px;max-width:130px}.stats{gap:10px}.stat{padding:18px 14px}.stat-value{font-size:24px}.project-cards{grid-template-columns:1fr}.filters{flex-wrap:wrap;padding:16px}.filters label{min-width:110px}.site-footer{padding:20px;flex-wrap:wrap}.entry-list{padding:4px 14px}.entry{gap:8px}.entry-meta{min-width:65px}.heatmap{grid-auto-columns:12px}.heat-footer{flex-wrap:wrap}.panel{padding:22px}.entry-list{padding:4px 14px}}@media(prefers-reduced-motion:no-preference){button,a{transition:background .15s,color .15s}.status-dot.running{animation:breathe 2s infinite}@keyframes breathe{50%{box-shadow:0 0 0 6px #edf2ed}}}
.entry-method{display:flex;gap:20px;border:0;padding:0;margin:20px 0}.entry-method legend{font-size:12px;font-weight:500;margin-bottom:10px}.entry-method label{display:flex;align-items:center;gap:8px;margin:0;font-size:13px}.entry-method input{width:auto;accent-color:var(--green)}
