:root{--accent:#1f6f8b;--accent-dark:#18586f;--tint:#d8eef5;--fg:#26343b;--muted:#61727a;--paper:#f7fafb;--border:#26343b24;--error:#c0392b;--tap:2.75rem;--navbar:3.5rem;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);color:var(--fg);-webkit-text-size-adjust:100%;font-family:Avenir Next,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}body{background:var(--paper);touch-action:manipulation;margin:0}.signin{min-height:100dvh;padding:2rem calc(1.25rem + var(--safe-l)) calc(2rem + var(--safe-b)) calc(1.25rem + var(--safe-r));text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.brand-mark{width:min(22rem,100%);height:auto}.app-name{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin:2.5rem 0 1.5rem;font-size:.9rem}.topbar{z-index:20;padding:.5rem calc(.85rem + var(--safe-r)) .5rem calc(.85rem + var(--safe-l));padding-top:calc(.5rem + var(--safe-t));background:var(--accent);color:#fff;justify-content:space-between;align-items:center;gap:.75rem;display:flex;position:sticky;top:0}.topbar-left{align-items:baseline;gap:.75rem;min-width:0;display:flex}.topbar-mark{width:auto;height:2.1rem}.topbar-app,#user-email{display:none}.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}#user-email{text-overflow:ellipsis;white-space:nowrap;max-width:16rem;overflow:hidden}.topbar-right button{color:#fff;background:#ffffff1f;border-color:#fff6}.topbar-right button:hover{background:#fff3}#app-main{padding:1rem calc(.85rem + var(--safe-r)) 1rem calc(.85rem + var(--safe-l));padding-bottom:calc(var(--navbar) + var(--safe-b) + 1.5rem);max-width:70rem;margin:0 auto}h2{margin:0 0 .75rem;font-size:1.35rem}h3{margin:1.25rem 0 .5rem;font-size:1.05rem}button{cursor:pointer;border:1px solid var(--border);min-height:var(--tap);font:inherit;color:var(--fg);background:#fff;border-radius:8px;padding:.6rem 1rem;font-size:.95rem}button:disabled{opacity:.55}#signin-btn{background:var(--accent);color:#fff;border-color:var(--accent);width:min(20rem,100%);padding:.75rem 1.4rem;font-size:1rem}#signin-btn:hover,.form-actions button[type=submit]:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.error{color:var(--error);font-size:.9rem}.muted,.loading{color:var(--muted);font-size:.9rem}.tabs{z-index:20;border-top:1px solid var(--border);padding-bottom:var(--safe-b);background:#fff;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -1px 6px #26343b0f}.tab{min-width:0;height:var(--navbar);min-height:var(--navbar);color:var(--muted);letter-spacing:.02em;background:0 0;border:none;border-radius:0;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:.15rem;padding:.3rem .2rem;font-size:.7rem;display:flex}.tab svg{stroke:currentColor;fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:1.35rem;height:1.35rem}.tab.active{color:var(--accent);font-weight:600}.card{border:1px solid var(--border);background:#fff;border-radius:10px;margin:.75rem 0;padding:.85rem;box-shadow:0 1px 2px #26343b0a}.form{flex-direction:column;gap:.85rem;display:flex}.field{color:var(--muted);flex-direction:column;gap:.3rem;min-width:0;font-size:.8rem;display:flex}.field input,.field select,.field textarea,.timer-controls input,.timer-controls select,.line-grid input{color:var(--fg);min-height:var(--tap);border:1px solid var(--border);resize:vertical;appearance:none;background:#fff;border-radius:8px;width:100%;max-width:100%;padding:.55rem .6rem;font-family:inherit;font-size:1rem}.field textarea,textarea{min-height:5rem}select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path d='M1 1.5 6 6.5l5-5' fill='none' stroke='%2361727a' stroke-width='1.5' stroke-linecap='round'/></svg>");background-position:right .7rem center;background-repeat:no-repeat;background-size:.7rem;padding-right:2rem}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.form-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.form-actions button{flex:8rem}.form-actions button[type=submit],.form-actions button:first-child{background:var(--accent);color:#fff;border-color:var(--accent)}.form-actions button[type=button]:not(:first-child){color:var(--fg);border-color:var(--border);background:#fff}.status{color:var(--muted);flex:1 0 100%;font-size:.85rem}.primary-action{background:var(--accent);color:#fff;border-color:var(--accent);width:100%}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.row>:first-child{flex:10rem;min-width:0}.row-actions{gap:.5rem;display:flex}.row>.row-actions{margin-left:auto}button.danger{color:var(--error);border-color:var(--error);background:#fff}.timer-controls{flex-direction:column;gap:.6rem;display:flex}.timer-controls button{background:var(--accent);color:#fff;border-color:var(--accent);font-size:1rem}.invoice-status{border:1px solid var(--border);background-color:var(--paper);cursor:pointer;background-position:right .5rem center;border-radius:999px;width:auto;min-height:2.25rem;padding:.25rem 1.6rem .25rem .6rem;font-size:.85rem;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{min-height:2rem;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:.25rem 0;font-size:.75rem;text-decoration:underline}button.linkish:hover{color:var(--accent)}.timer-running{flex-direction:column;align-items:stretch;gap:.75rem;display:flex}.timer-running button{border-color:var(--error);background:var(--error);color:#fff;font-size:1rem}.timer-readout{font-variant-numeric:tabular-nums;font-size:2.4rem;font-weight:600;line-height:1.1;display:block}.entry-grid{grid-template-columns:1fr;gap:.75rem;display:grid}.filter-bar{grid-template-columns:1fr 1fr;align-items:end;gap:.6rem;display:grid}.filter-bar>.field:first-child,.filter-bar>.field.wide,.filter-bar>button{grid-column:1/-1}.filter-bar button{background:var(--accent);color:#fff;border-color:var(--accent)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.export-bar{align-items:center;gap:.5rem;font-size:.85rem;display:flex}.export-bar button{min-height:2.25rem;padding:.45rem .8rem;font-size:.85rem}.view>div{scroll-margin-top:4rem}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}tr.grand td{border-top:2px solid var(--fg)}table.totals{max-width:36rem}table.totals th,table.totals td{padding:.5rem .4rem}table.entries{margin:.5rem 0;display:block}table.entries thead{display:none}table.entries tbody{display:block}table.entries tr{border:1px solid var(--border);background:#fff;border-radius:10px;flex-direction:column;margin-bottom:.6rem;padding:.7rem .85rem;display:flex;box-shadow:0 1px 2px #26343b0a}table.entries td{text-align:right;overflow-wrap:anywhere;border:none;justify-content:space-between;align-items:baseline;gap:1rem;min-width:0;padding:.2rem 0;display:flex}table.entries td:before{content:attr(data-label);color:var(--muted);text-align:left;flex:none;font-size:.78rem}table.entries td:empty{display:none}table.entries td.headline{text-align:left;order:-1;padding-bottom:.35rem;font-size:1rem;font-weight:600;display:block}table.entries td.headline:before{content:none}table.entries td.row-actions{border-top:1px solid var(--border);gap:.5rem;margin-top:.5rem;padding-top:.6rem;display:flex}table.entries td.row-actions:before{content:none}table.entries td.row-actions button{flex:1 1 0;min-height:2.5rem;font-size:.9rem}table.line-grid{display:block}table.line-grid thead{display:none}table.line-grid tbody{display:block}table.line-grid tr{border:none;border-bottom:1px solid var(--border);box-shadow:none;background:0 0;border-radius:0;grid-template-columns:1fr 1fr auto;align-items:end;gap:.5rem;margin:0;padding:.7rem 0;display:grid}table.line-grid td{text-align:left;border:none;padding:0;display:block}table.line-grid td:first-child{grid-column:1/-1;width:auto}table.line-grid td:before{content:attr(data-label);color:var(--muted);margin-bottom:.2rem;font-size:.78rem;display:block}table.line-grid td.row-actions{border:none;margin:0;padding:0;display:block}table.line-grid td.row-actions:before{content:none}table.line-grid td.row-actions button{min-width:var(--tap);padding:.5rem .7rem}.table-scroll{overflow-x:visible}.invoice-total-bar{text-align:right;margin-top:.75rem}.invoice-total{font-size:1.15rem;font-weight:600}.warn{color:#9a6b00;background:#fff8e1;border:1px solid #f0d98c;border-radius:8px;padding:.5rem .7rem;font-size:.85rem}@media (width>=40rem){#app-main{padding:1.25rem 1.25rem 2rem}.topbar{padding:.6rem 1.25rem;padding-top:calc(.6rem + var(--safe-t))}.topbar-mark{height:2.75rem}.topbar-app,#user-email{display:inline}.tabs{border-top:none;border-bottom:1px solid var(--border);box-shadow:none;background:0 0;gap:.25rem;margin-bottom:1.25rem;padding-bottom:0;display:flex;position:static}.tab{height:auto;min-height:var(--tap);border-bottom:2px solid #0000;flex-direction:row;flex:none;gap:.45rem;padding:.5rem .9rem;font-size:.95rem}.tab.active{color:var(--fg);border-bottom-color:var(--accent)}.tab svg{width:1.05rem;height:1.05rem}.card{padding:1rem}.primary-action{width:auto}.form{max-width:32rem}.entry-form,.form.entry-form{max-width:none}.entry-grid{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr))}.filter-bar{flex-wrap:wrap;align-items:end;gap:1rem;display:flex}.filter-bar>.field{flex:0 12rem}.filter-bar>.field:first-child,.filter-bar>button{grid-column:auto}.filter-bar>button{flex:none}.timer-controls{flex-direction:row;align-items:center;gap:.75rem}.timer-controls .field,.timer-controls select,.timer-controls input{width:auto}.timer-running{flex-direction:row;justify-content:space-between;align-items:center}.timer-running button{flex:none}.timer-readout{font-size:1.6rem}.form-actions button{flex:none}.status{flex:0 auto}table.entries,table.line-grid{width:100%;display:table}table.entries tbody,table.line-grid tbody{display:table-row-group}table.entries thead,table.line-grid thead{display:table-header-group}table.entries tr,table.line-grid tr{box-shadow:none;background:0 0;border:none;border-radius:0;margin:0;padding:0;display:table-row}table.entries td,table.line-grid td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:.45rem .6rem;display:table-cell}table.entries td:before,table.line-grid td:before{content:none}table.entries td:empty{display:table-cell}table.entries td.headline{font-weight:400;font-size:inherit;padding:.45rem .6rem;display:table-cell}table.entries td.row-actions,table.line-grid td.row-actions{white-space:nowrap;border-top:none;margin:0;padding:.45rem .6rem;display:table-cell}table.entries td.row-actions button{flex:none;min-height:2.25rem;padding:.4rem .75rem}table.entries .num,table.entries .src{white-space:nowrap}table.line-grid td:first-child{width:55%}table.line-grid input{min-height:2.25rem;padding:.35rem .45rem}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.signin{min-height:100dvh}.brand-mark{width:min(26rem,90%)}.app-name{margin:3rem 0 1.75rem}}@media (pointer:fine) and (width>=40rem){button{min-height:2.25rem;padding:.5rem .9rem;font-size:.9rem}.field input,.field select,.field textarea{min-height:2.25rem;padding:.45rem .55rem;font-size:.9rem}}
