:root{--ink:#12151c;--panel:#1b2029;--line:#2b3140;--text:#e8e6de;--muted:#8b93a3;--muted-2:#5b6272;--time:#5fb3a3;--time-dim:#5fb3a322;--money:#d9a64e;--money-dim:#d9a64e22;--bad:#c4645a;--bad-dim:#c4645a22;--radius:6px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--ink);color:var(--text);margin:0;font-family:IBM Plex Sans,sans-serif;font-size:14px;line-height:1.5}.mono{font-family:IBM Plex Mono,monospace}button,input,select{font-family:inherit}.app{max-width:1180px;margin:0 auto;padding:20px 16px 80px}header.top{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:20px;display:flex}.wordmark{align-items:baseline;gap:10px;display:flex}.wordmark .mark{letter-spacing:.2px;font-size:17px;font-weight:600}.wordmark .tenant{color:var(--muted);font-size:13px}.org-logo{object-fit:contain;width:auto;max-width:140px;height:24px;display:block}.userbox{align-items:center;gap:12px;display:flex}.userbox .userinfo{flex-direction:column;align-items:flex-end;line-height:1.3;display:flex}.userbox .userinfo .name{font-size:13px;font-weight:500}.userbox .userinfo .role{color:var(--muted);text-transform:capitalize;font-size:11.5px}.subtabs{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);gap:2px;margin-bottom:20px;padding:2px;display:inline-flex}.subtabs button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:7px 14px;font-family:inherit;font-size:13px;transition:background .15s,color .15s}.subtabs button.active{background:var(--line);color:var(--text)}.subtabs button:hover:not(.active){color:var(--text)}.layout{grid-template-columns:190px 1fr;gap:32px;display:grid}nav.side{flex-direction:column;gap:2px;padding-top:4px;display:flex}nav.side .item{color:var(--muted);cursor:default;border-radius:4px;padding:8px 10px;font-size:13.5px}nav.side .item.clickable{cursor:pointer}nav.side .item.clickable:hover{color:var(--text);background:#ffffff08}nav.side .item.on{color:var(--text);background:var(--panel)}nav.side .section-label{color:var(--muted-2);letter-spacing:.3px;margin:14px 0 4px 10px;font-size:11px}main{min-width:0}h1{margin:0 0 4px;font-size:20px;font-weight:600}.sub{color:var(--muted);margin:0 0 22px;font-size:13px}.stats{flex-wrap:wrap;gap:24px;margin-bottom:26px;display:flex}.stat{min-width:130px}.stat .label{color:var(--muted);margin-bottom:5px;font-size:12px}.stat .value{font-size:22px;font-weight:600}.stat .value.time{color:var(--time)}.stat .value.money{color:var(--money)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;scroll-margin-top:12px;overflow:hidden}.panel .panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.panel .panel-head h2{margin:0;font-size:14px;font-weight:600}.panel .panel-head .count{color:var(--muted);white-space:nowrap;font-size:12px}.panel .panel-head .count select,.panel .panel-head .count input{background:var(--ink);border:1px solid var(--line);color:var(--text);border-radius:4px;padding:5px 8px;font-family:inherit;font-size:12.5px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 16px;font-size:11.5px;font-weight:500}th.ta-right,td.ta-right{text-align:right}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 16px;font-size:13.5px}tr:last-child td{border-bottom:none}tr.row:hover td{background:#ffffff05}.pill{white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;display:inline-flex}.pill.pending{background:var(--money-dim);color:var(--money)}.pill.approved,.pill.paid{background:var(--time-dim);color:var(--time)}.pill.rejected,.pill.failed{background:var(--bad-dim);color:var(--bad)}.pill.draft{color:var(--muted);background:#ffffff10}.pill:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}.btn{cursor:pointer;border:1px solid var(--line);color:var(--text);background:0 0;border-radius:4px;padding:6px 12px;font-family:inherit;font-size:12.5px;transition:background .15s}.btn:hover{background:#ffffff0a}.btn.primary{background:var(--time);border-color:var(--time);color:#0f2420;font-weight:600}.btn.primary:hover{background:#6cc2b1}.btn.ghost-bad{color:var(--bad);border-color:var(--bad-dim)}.btn.ghost-bad:hover{background:var(--bad-dim)}.btn.small{padding:4px 10px;font-size:12px}.btn:disabled{opacity:.4;cursor:default}.btn.icon{justify-content:center;align-items:center;padding:5px;line-height:0;display:inline-flex}.actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.table-wrap td.actions-cell{text-align:right}.form-row{flex-wrap:wrap;align-items:flex-end;gap:12px;padding:16px;display:flex}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--muted);font-size:11.5px}.field select,.field input{background:var(--ink);border:1px solid var(--line);color:var(--text);border-radius:4px;min-width:110px;padding:8px 10px;font-size:13px}.field input[type=number]{width:80px}.field.grow{flex:1;min-width:180px}.field.grow input{width:100%}.form-error{color:var(--bad);padding:0 16px 12px;font-size:12.5px}.sparkbars{align-items:flex-end;gap:4px;height:40px;display:flex}.sparkbars .bar{background:var(--time);opacity:.85;border-radius:2px 2px 0 0;width:9px}.empty{text-align:center;color:var(--muted);padding:30px 16px;font-size:13px}.note{color:var(--muted-2);margin:0 16px 14px;font-size:12px}.auth-screen{justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.auth-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:360px;padding:28px}.auth-card .wordmark{margin-bottom:4px}.auth-card h1{margin:18px 0 4px;font-size:16px}.auth-card form{flex-direction:column;gap:12px;margin-top:16px;display:flex}.auth-card .field{gap:6px}.auth-card .field input{width:100%;min-width:0}.auth-card .btn.primary{width:100%;padding:10px 12px;font-size:13px}.auth-toggle{color:var(--muted);text-align:center;margin-top:16px;font-size:12.5px}.auth-toggle button{color:var(--time);cursor:pointer;background:0 0;border:none;padding:0;font-size:12.5px}.auth-message{color:var(--time);background:var(--time-dim);border-radius:4px;margin-top:12px;padding:10px 12px;font-size:12.5px}.auth-message.error{color:var(--bad);background:var(--bad-dim)}.centered-state{min-height:100%;color:var(--muted);text-align:center;justify-content:center;align-items:center;padding:24px;display:flex}@media (width<=900px){.layout{grid-template-columns:1fr;gap:16px}nav.side{-webkit-overflow-scrolling:touch;background:var(--ink);z-index:5;border-bottom:1px solid var(--line);flex-direction:row;gap:6px;padding:4px 2px 10px;position:sticky;top:0;overflow-x:auto}nav.side .item{white-space:nowrap;flex:none}nav.side .section-label{display:none}}@media (width<=640px){.app{padding:16px 12px 60px}header.top{justify-content:flex-start}.userbox{margin-left:auto}.userbox .userinfo{display:none}.table-wrap table,.table-wrap thead,.table-wrap tbody,.table-wrap th,.table-wrap td,.table-wrap tr{display:block}.table-wrap thead tr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.table-wrap tr.row{border-bottom:1px solid var(--line);padding:10px 0}.table-wrap tr.row:last-child{border-bottom:none}.table-wrap td{text-align:right;border-bottom:none;justify-content:space-between;align-items:center;gap:12px;padding:5px 16px;display:flex}.table-wrap td:before{content:attr(data-label);color:var(--muted);text-align:left;margin-right:auto;font-size:11.5px}.table-wrap td.actions-cell{justify-content:flex-end}.table-wrap td.actions-cell:before{content:none}.form-row{flex-direction:column;align-items:stretch}.field,.field.grow{width:100%;min-width:0}.field select,.field input,.field input[type=number]{width:100%}}
