:root{--bg:#f4f6f4;--card:#fff;--text:#1c1c1b;--muted:#5f6b66;--line:#dde4e0;--primary:#33584b;--accent:#65aa4c;--soft:#c7d372;--mist:#b7cbcf;--go:#3f8a2a;--stop:#b42318;--warn:#9a5b00;--hour:40px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;margin:0;font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}main{max-width:640px;margin:0 auto;padding:16px 16px 96px}main.narrow{max-width:420px;padding-top:48px}h1{margin:0 0 12px;font-size:1.4rem}h2{margin:0 0 8px;font-size:1.05rem}a{color:var(--primary)}.muted{color:var(--muted)}.error{background:color-mix(in srgb, var(--stop) 12%, transparent);color:var(--stop);border-radius:8px;padding:10px 12px}.error-text{color:var(--stop)}.topbar{background:var(--card);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:none;padding:10px 16px;display:flex}.topbar-links{align-items:center;gap:14px;font-size:.9rem;display:flex}.topbar-links form{margin:0}.tabs{background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.tabs a{text-align:center;color:var(--text);flex:1;padding:14px 4px;font-weight:600;text-decoration:none}.stack{gap:14px;display:grid}label{gap:6px;font-size:.92rem;font-weight:600;display:grid}input,select{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:10px;width:100%;min-height:48px;padding:12px;font-weight:400}.btn{text-align:center;cursor:pointer;font:inherit;background:var(--primary);color:#fff;border:0;border-radius:12px;width:100%;min-height:52px;padding:14px 18px;font-weight:700;text-decoration:none;display:inline-block}.btn:disabled{opacity:.6}.btn-start{background:var(--accent);font-size:1.15rem}.btn-stop{background:var(--stop);font-size:1.15rem}.btn-danger{color:var(--stop);border:1px solid var(--stop);background:0 0}button.link{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.danger-zone{margin-top:28px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;margin-bottom:16px;padding:16px}.big{text-align:center;margin:4px 0 14px;font-size:2.6rem;font-weight:700}.timer{font-variant-numeric:tabular-nums}.totals{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;display:grid}.totals div{background:var(--card);border:1px solid var(--line);text-align:center;border-radius:14px;padding:12px}.totals span{color:var(--muted);font-size:.8rem;display:block}.totals strong{font-variant-numeric:tabular-nums;font-size:1.3rem}.rows,.list{margin:0;padding:0;list-style:none}.rows li{border-bottom:1px solid var(--line);justify-content:space-between;padding:6px 0;display:flex}.list li{margin-bottom:8px}.item{background:var(--card);border:1px solid var(--line);color:inherit;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;display:flex}.item.expense{align-items:flex-start}.right{text-align:right}.right form{margin:4px 0 0}.monthnav{justify-content:space-between;align-items:center;display:flex}.monthnav h1{text-transform:capitalize;margin:0}.monthnav a{padding:0 12px;font-size:2rem;text-decoration:none}.badge{border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:700;display:inline-block}.badge-pending{background:color-mix(in srgb, var(--warn) 18%, transparent);color:var(--warn)}.badge-approved{background:color-mix(in srgb, var(--primary) 18%, transparent);color:var(--primary)}.badge-reimbursed{background:color-mix(in srgb, var(--go) 18%, transparent);color:var(--go)}.badge-rejected{background:color-mix(in srgb, var(--stop) 18%, transparent);color:var(--stop)}.logo-big{max-width:70%;height:auto;margin:0 auto 8px;display:block}main.narrow h1,main.narrow>p.muted{text-align:center}.brand{color:var(--text);align-items:center;gap:10px;text-decoration:none;display:flex}.brand span{line-height:1.15;display:grid}.brand small{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem}.topbar{border-bottom:3px solid var(--accent)}.tabs a{border-top:3px solid #0000}.tabs a:hover{border-top-color:var(--accent)}.small{font-size:.85rem}.section{margin-top:24px}.two{grid-template-columns:1fr 1fr;gap:12px;display:grid}.actions{grid-template-columns:1fr 1fr;gap:10px;margin:14px 0;display:grid}.btn-ghost{color:var(--primary);border:2px solid var(--primary);background:0 0}.weekmeta{margin:4px 0 12px}.balance{background:var(--card);border:1px solid var(--line);border-left:6px solid var(--mist);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:16px;display:flex}.balance strong{font-variant-numeric:tabular-nums;font-size:1.8rem}.balance.plus{border-left-color:var(--accent)}.balance.plus strong{color:var(--go)}.balance.minus{border-left-color:var(--stop)}.balance.minus strong{color:var(--stop)}.stats{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px;display:grid}.stats div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px}.stats span{color:var(--muted);font-size:.8rem;display:block}.stats strong{font-variant-numeric:tabular-nums;font-size:1.4rem}.absrow{align-items:center;gap:12px}.absrow form{margin:0}.week{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}.week-head,.week-body{grid-template-columns:26px repeat(7,minmax(0,1fr));display:grid}.week-head{border-bottom:1px solid var(--line)}.dayhead{border-left:1px solid var(--line);min-height:64px;color:var(--muted);align-content:start;justify-items:center;padding:6px 0 4px;font-size:.72rem;display:grid;position:relative}.dayhead strong{color:var(--text);font-size:1.05rem}.dayhead.today strong{background:var(--primary);color:#fff;text-align:center;border-radius:999px;min-width:26px}.dayhead .plus{color:var(--primary);padding:2px 8px;font-size:1.1rem;font-weight:700;line-height:1;text-decoration:none}.dayhead em{text-align:center;background:var(--mist);color:var(--text);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;max-width:100%;padding:0 2px;font-size:.6rem;font-style:normal;line-height:1.1;overflow:hidden}.gutter{color:var(--muted);font-size:.65rem;position:relative}.week-body .gutter span{position:absolute;right:3px;transform:translateY(-50%)}.daycol{height:calc(var(--rows) * var(--hour));border-left:1px solid var(--line);background-image:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--hour) - 1px), var(--line) calc(var(--hour) - 1px), var(--line) var(--hour));position:relative}.daycol.today{background-color:color-mix(in srgb, var(--soft) 14%, transparent)}.daycol.holiday,.daycol.absent{background-color:color-mix(in srgb, var(--mist) 35%, transparent)}.block{border-radius:6px;flex-direction:column;padding:3px 4px;font-size:.7rem;line-height:1.15;text-decoration:none;display:flex;position:absolute;left:2px;right:2px;overflow:hidden;box-shadow:0 1px 2px #00000026}.block b{font-variant-numeric:tabular-nums}.block .blk-name,.block .blk-time{display:none}.block.live{outline:2px dashed var(--stop);outline-offset:-2px}@media (min-width:720px){main{max-width:980px}main.narrow{max-width:420px}:root{--hour:48px}.week-head,.week-body{grid-template-columns:34px repeat(7,minmax(0,1fr))}.block .blk-name,.block .blk-time{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.dayhead em{font-size:.72rem}.stats{grid-template-columns:repeat(4,1fr)}.btn{width:auto}.actions{grid-template-columns:auto auto;justify-content:start}}body:has(.logo-big){background:#fff}.tablewrap{margin:0 -4px;overflow-x:auto}.datatable{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.88rem}.datatable th,.datatable td{text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 10px}.datatable th:first-child,.datatable td:first-child{text-align:left}.datatable thead th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;font-weight:600}.datatable tbody tr:nth-child(2n){background:color-mix(in srgb, var(--mist) 12%, transparent)}.datatable tr.current{background:#eef3d4;font-weight:600}.datatable td.neg,.datatable th.neg{color:var(--stop)}.datatable td.pos,.datatable th.pos{color:var(--go)}.datatable td.dim{color:var(--muted)}.datatable tfoot th{border-bottom:0;border-top:2px solid var(--line)}
