:root{--bg:#0f1115;--panel:#171a21;--panel-2:#1d212b;--line:#272c38;--text:#e6e9ef;--dim:#8b93a7;--accent:#5b8cff;--good:#34d399;--warn:#fbbf24;--bad:#f87171;--radius:12px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;min-height:100dvh;font-size:14px}.app{max-width:1040px;min-height:100dvh;padding:0 calc(16px + env(safe-area-inset-right)) calc(64px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));margin:0 auto}.topbar{z-index:10;padding:calc(14px + env(safe-area-inset-top)) 0 14px;background:var(--bg);border-bottom:1px solid var(--line);align-items:center;gap:16px;display:flex;position:sticky;top:0}.brand{letter-spacing:.2px;white-space:nowrap;font-weight:700}.brand .logo{color:var(--accent)}.tabs{flex:1;gap:4px;display:flex}.tab{color:var(--dim);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 12px;font-size:14px}.tab:hover{color:var(--text);background:var(--panel)}.tab.active{color:var(--text);background:var(--panel-2)}.sync{color:var(--dim);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:flex}.account-name{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.dot{border-radius:50%;width:8px;height:8px}.dot.on{background:var(--good)}.dot.off{background:var(--dim)}.content{padding-top:20px}.stack{flex-direction:column;gap:14px;display:flex}.stack.tight{gap:4px}.row{align-items:center;display:flex}.row.gap{gap:10px}.row.gap.tight{gap:6px}.row.between,.between{justify-content:space-between}.row.wrap,.wrap{flex-wrap:wrap}.row.end,.end{align-items:flex-end}.grow{flex:1}.self-start{align-self:flex-start}.left{text-align:left;align-items:flex-start}.right{text-align:right}.dim{color:var(--dim)}.sm{font-size:12px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}button.card{cursor:pointer;width:100%;color:inherit;font:inherit;text-align:left}button.card:hover{border-color:var(--accent)}input,select{background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;border-radius:8px;outline:none;min-width:0;padding:8px 10px}input:focus,select:focus{border-color:var(--accent)}.ghost-input{background:0 0;border-color:#0000}.ghost-input:hover{border-color:var(--line)}.title-input{background:0 0;border-color:#0000;padding-left:0;font-size:18px;font-weight:700}.title-input:hover,.title-input:focus{border-color:var(--line);padding-left:10px}.share-input{text-align:right;width:64px}.field{flex-direction:column;gap:4px;display:flex}.field-label{text-transform:uppercase;letter-spacing:.4px;color:var(--dim);font-size:11px}.inline-form{align-items:flex-end}.btn{background:var(--panel-2);border:1px solid var(--line);color:var(--text);cursor:pointer;font:inherit;border-radius:8px;padding:8px 14px}.btn:hover{border-color:var(--accent)}.btn.sm{padding:5px 10px;font-size:12px}.btn.primary{background:var(--accent);border-color:var(--accent);color:#0b1020;font-weight:600}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--bad)}.btn.danger:hover{border-color:var(--bad)}.btn:disabled{opacity:.4;cursor:not-allowed}.table{border-collapse:collapse;width:100%}.table th{text-align:left;color:var(--dim);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--line);padding:6px 10px;font-size:11px;font-weight:500}.table td{border-bottom:1px solid var(--line);padding:8px 10px}.table.compact td,.table.compact th{padding:6px 10px}.table .right{text-align:right}.table tbody tr:last-child td{border-bottom:0}.pill{border:1px solid var(--line);background:var(--panel-2);color:var(--dim);border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.pill.good{color:var(--good);border-color:color-mix(in srgb, var(--good) 40%, var(--line))}.pill.warn{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 40%, var(--line))}.pill.muted{color:var(--dim)}.pill.accent{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, var(--line))}.bal{font-variant-numeric:tabular-nums;font-weight:600}.bal.pos{color:var(--good)}.bal.neg{color:var(--bad)}.bal.zero{color:var(--dim)}.kpi{flex-direction:column;gap:2px;min-width:90px;padding:4px 0;display:flex}.kpi strong{font-variant-numeric:tabular-nums;font-size:16px}.kpi.warn strong{color:var(--warn)}.member-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;display:grid}.member-chip{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.member-chip.on{border-color:var(--accent)}.total{font-variant-numeric:tabular-nums;font-weight:600}.total.ok{color:var(--good)}.total.bad{color:var(--warn)}.settle-row{border-bottom:1px solid var(--line);padding:8px 0}.settle-row:last-child{border-bottom:0}h3{margin:0;font-size:14px}.banner{background:var(--panel);border:1px solid var(--line);color:var(--dim);border-radius:8px;margin-top:12px;padding:10px 14px}.banner.error{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 40%, var(--line))}.empty{text-align:center;color:var(--dim);border:1px dashed var(--line);border-radius:var(--radius);padding:28px}.hint{color:var(--dim);margin:0;font-size:12px}.login-screen{min-height:100dvh;padding:calc(32px + env(safe-area-inset-top)) calc(32px + env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) calc(32px + env(safe-area-inset-left));justify-content:center;align-items:center;display:flex}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:360px;padding:28px}.login-card h2{margin:0;font-size:18px}.project-row strong{font-size:15px}.multi-select{-webkit-user-select:none;user-select:none;position:relative}.multi-select-trigger{background:var(--panel-2);border:1px solid var(--line);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:8px 10px;display:flex}.multi-select-trigger:hover{border-color:var(--accent)}.multi-select-trigger.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--panel-2))}.multi-select-trigger .arrow{color:var(--dim);font-size:10px}.multi-select-dropdown{z-index:20;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;min-width:200px;max-height:260px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.multi-select-option{cursor:pointer;color:var(--text);border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.multi-select-option:hover{background:var(--panel)}.multi-select-option input[type=checkbox]{accent-color:var(--accent);cursor:pointer;width:15px;height:15px}.date-range-dropdown{gap:12px;width:270px;max-height:none;padding:12px;display:grid;overflow:visible}.date-range-dropdown input[type=date]{width:100%}.offline-screen{min-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) calc(24px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left));place-items:center;display:grid}.offline-card{text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);width:min(100%,360px);padding:28px}.offline-card h1,.offline-card p{margin:0}.offline-logo{color:#fff;background:var(--accent);border-radius:18px;place-items:center;width:64px;height:64px;margin:0 auto;font-size:32px;font-weight:800;display:grid}@media (display-mode:standalone){.install-btn{display:none}}@media (width<=720px){body{font-size:14px}.app{padding-right:calc(12px + env(safe-area-inset-right));padding-bottom:calc(82px + env(safe-area-inset-bottom));padding-left:calc(12px + env(safe-area-inset-left))}.topbar{gap:10px;padding-bottom:10px}.brand{font-size:15px}.account{min-width:0;margin-left:auto;gap:6px!important}.account-name{max-width:90px}.sync{gap:0;font-size:0}.tabs{z-index:50;padding:8px calc(8px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) calc(8px + env(safe-area-inset-left));background:color-mix(in srgb, var(--bg) 92%, transparent);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);gap:2px;position:fixed;bottom:0;left:0;right:0}.tab{text-overflow:ellipsis;flex:1 1 0;min-width:0;min-height:44px;padding:7px 3px;font-size:11px;line-height:1.15;overflow:hidden}.tab.active{color:#fff;background:color-mix(in srgb, var(--accent) 20%, var(--panel-2))}.content{padding-top:14px}.card{padding:14px}.login-screen{padding-right:calc(16px + env(safe-area-inset-right));padding-left:calc(16px + env(safe-area-inset-left));align-items:flex-start}.login-card{margin-top:max(4vh,16px);padding:22px}.project-row{flex-direction:column;align-items:flex-start}.project-row>.row{flex-wrap:wrap}.inline-form .field,form.card>.field{flex:140px}.inline-form .field input,.inline-form .field select,form.card>.field input,form.card>.field select{width:100%}.member-grid{grid-template-columns:1fr}.multi-select-dropdown{max-width:calc(100vw - 24px);left:auto;right:0}.date-range-dropdown{width:min(270px,100vw - 24px)}.table{white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:thin;display:block;overflow-x:auto}.table th,.table td{padding-left:8px;padding-right:8px}}@media (width<=430px){.account-name{display:none}.topbar .btn.sm{padding:6px 8px}.row.between.settle-row{flex-direction:column;align-items:flex-start;gap:8px}}
