:root{--accent:#1f6f8b;--accent-dark:#18586f;--tint:#d8eef5;--fg:#26343b;--muted:#61727a;--paper:#f7fafb;--border:#26343b24;--error:#c0392b;color:var(--fg);font-family:Avenir Next,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}body{background:var(--paper);margin:0}.signin{text-align:center;max-width:24rem;margin:14vh auto;padding:0 1rem}.brand-mark{width:min(26rem,90%);height:auto;margin:0 auto .75rem;display:block}.app-name{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin:24vh 0 1.75rem;font-size:.95rem}.topbar{background:var(--accent);color:#fff;justify-content:space-between;align-items:center;padding:.6rem 1.25rem;display:flex}.topbar-left{align-items:baseline;gap:.75rem;display:flex}.topbar-mark{width:auto;height:2.75rem}.topbar-app{letter-spacing:.14em;text-transform:uppercase;color:var(--tint);font-size:.8rem}.topbar-right{color:var(--tint);align-items:center;gap:.75rem;font-size:.9rem;display:flex}.topbar-right button{color:#fff;background:#ffffff1f;border-color:#fff6}.topbar-right button:hover{background:#fff3}#app-main{max-width:70rem;margin:0 auto;padding:1.25rem}button{cursor:pointer;border:1px solid var(--border);background:#fff;border-radius:6px;padding:.5rem .9rem;font-size:.9rem}#signin-btn{background:var(--accent);color:#fff;border-color:var(--accent);padding:.6rem 1.4rem;font-size:.95rem}#signin-btn:hover,.form-actions button[type=submit]:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.error{color:var(--error);font-size:.85rem}.muted,.loading{color:var(--muted);font-size:.9rem}.tabs{border-bottom:1px solid var(--border);gap:.25rem;margin-bottom:1.25rem;display:flex}.tab{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:.5rem .9rem}.tab.active{color:var(--fg);border-bottom-color:var(--accent);font-weight:600}.card{border:1px solid var(--border);background:#fff;border-radius:8px;margin:.75rem 0;padding:1rem;box-shadow:0 1px 2px #26343b0a}.form{flex-direction:column;gap:.85rem;max-width:32rem;display:flex}.field{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.field input,.field textarea{font:inherit;color:var(--fg);border:1px solid var(--border);resize:vertical;border-radius:6px;padding:.45rem .55rem}.form-actions{align-items:center;gap:.75rem;display:flex}.form-actions button[type=submit]{background:var(--accent);color:#fff;border-color:var(--accent)}.status{color:var(--muted);font-size:.85rem}.row{justify-content:space-between;align-items:center;display:flex}.row-actions{gap:.5rem;display:flex}button.danger{color:var(--error);border-color:var(--error)}.invoice-status{border:1px solid var(--border);background:var(--paper);cursor:pointer;border-radius:999px;padding:.15rem .4rem;font-size:.8rem;font-weight:600}.invoice-status.status-unsent{color:var(--muted)}.invoice-status.status-outstanding{color:#b26a00;border-color:#b26a00}.invoice-status.status-paid{color:#1f7a3d;border-color:#1f7a3d}.invoiced-row{color:var(--muted)}.invoiced-badge{color:var(--accent);background:var(--tint);white-space:nowrap;border-radius:999px;padding:.1rem .4rem;font-size:.75rem;font-weight:600;display:inline-block}.cp-cell{white-space:normal;flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}button.linkish{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:.75rem;text-decoration:underline}button.linkish:hover{color:var(--accent)}.timer-controls,.timer-running{align-items:center;gap:.75rem;display:flex}.timer-running{justify-content:space-between}.timer-readout{font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:600}.entry-grid{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.75rem;display:grid}.entry-form{max-width:none}.filter-bar{flex-wrap:wrap;align-items:end;gap:1rem;display:flex}table.entries,table.totals{border-collapse:collapse;width:100%;margin:.75rem 0;font-size:.9rem}table.entries th,table.entries td,table.totals th,table.totals td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.45rem .6rem}.num{font-variant-numeric:tabular-nums;text-align:right!important}.src{color:var(--muted);font-size:.8rem}table.totals{max-width:36rem}tr.grand td{border-top:2px solid var(--fg)}.section-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.export-bar{align-items:center;gap:.5rem;font-size:.85rem;display:flex}.line-grid input{width:100%;font:inherit;border:1px solid var(--border);border-radius:4px;padding:.3rem .4rem}.line-grid td:first-child{width:55%}.invoice-total-bar{text-align:right;margin-top:.5rem}.invoice-total{font-size:1.1rem;font-weight:600}.warn{color:#9a6b00;background:#fff8e1;border:1px solid #f0d98c;border-radius:6px;padding:.5rem .7rem;font-size:.85rem}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}table.entries td.row-actions,table.entries .num,table.entries .src{white-space:nowrap}@media (width<=640px){#app-main{padding:.85rem}.topbar{padding:.5rem .85rem}.topbar-mark{height:2.25rem}.topbar-app,#user-email{display:none}.tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}.tab{flex:none}.entry-grid{grid-template-columns:1fr}.filter-bar{gap:.6rem}.form{max-width:none}.signin{margin:9vh auto}table.line-grid{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}table.line-grid td:first-child{min-width:12rem}}
