.app-shell{min-height:100dvh;display:flex;justify-content:center;background:var(--desk)}.app-frame{width:100%;max-width:430px;min-height:100dvh;background:var(--paper);display:flex;flex-direction:column;position:relative;box-shadow:0 0 0 1px var(--line)}.web-bar{display:flex;align-items:center;gap:10px;padding:12px 20px;border-bottom:1px solid var(--line);background:var(--card)}.web-bar .brand{font-family:Lora,serif;font-size:15px;font-weight:700}.web-bar .tenant{font-size:12px;color:var(--ink2);border-left:1px solid var(--line);padding-left:10px}.badge{font-size:9.5px;font-weight:700;letter-spacing:.08em;color:var(--ink2);background:var(--line);padding:3px 8px;border-radius:999px}.avatar{width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;font-family:Lora,serif;font-size:12px;flex:none}.screen{flex:1;overflow:auto;padding:6px 20px 30px;animation:fadein .25s ease;display:flex;flex-direction:column}.screen.home,.screen.month,.screen.clients{padding-bottom:90px}.screen.onboard{padding:6px 24px 30px}.micro{font-family:IBM Plex Mono,monospace;font-size:10.5px;letter-spacing:.12em;color:var(--ink2);text-transform:uppercase}.serif{font-family:Lora,serif;font-weight:600}.mono{font-family:IBM Plex Mono,monospace}.title-lg{font-family:Lora,serif;font-size:25px;font-weight:600}.title-md{font-family:Lora,serif;font-size:21px;font-weight:600}.muted{color:var(--ink2)}.row{display:flex;align-items:center;gap:8px}.between{display:flex;justify-content:space-between;align-items:center;gap:10px}.stack{display:flex;flex-direction:column;gap:12px}.grow{flex:1;min-width:0}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:var(--pad)}.card-sm{border-radius:14px;padding:var(--rpad) var(--pad)}.card-dashed{background:var(--card);border:1px dashed var(--line);border-radius:14px;padding:26px 20px;text-align:center}.btn{min-height:44px;border-radius:11px;border:none;cursor:pointer;font-weight:600;padding:10px 16px}.btn:hover{opacity:.9}.btn-ink{background:var(--ink);color:var(--paper)}.btn-acc{background:var(--acc);color:#fff}.btn-acc:hover{filter:brightness(1.08);opacity:1}.btn-ghost{background:transparent;color:var(--ink2);border:1px solid var(--line)}.btn-ghost:hover{border-color:var(--ink2);color:var(--ink);opacity:1}.btn-block{width:100%}.btn-lg{min-height:52px;border-radius:13px;font-size:15px;font-weight:700}.btn-back{min-width:44px;min-height:44px;border:none;background:transparent;color:var(--ink2);font-size:20px;border-radius:10px;cursor:pointer}.btn-back:hover{background:var(--line)}.icon-btn{display:flex;align-items:center;gap:10px;min-height:48px;width:100%;border:none;background:transparent;padding:4px;border-radius:10px;cursor:pointer;text-align:left;color:var(--ink)}.icon-btn:hover{background:var(--line)}.chip-row{display:flex;gap:7px;flex-wrap:wrap}.chip{min-height:44px;padding:10px 15px;border-radius:11px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font-weight:600;font-size:13.5px;cursor:pointer}.chip:hover{border-color:var(--ink)}.chip.on{border-color:var(--ink);background:var(--line)}.chip.acc.on{border-color:var(--acc);background:var(--accSoft)}.chip.warn.on{border-color:var(--warn);background:var(--warnSoft)}.chip.pill{border-radius:999px;min-height:36px;padding:7px 12px;font-size:12px}.chip.soft{min-height:32px;padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--ink2);font-size:12px;font-weight:500}.field{width:100%;min-height:44px;border:1.5px solid var(--line);border-radius:11px;background:var(--paper);color:var(--ink);font-size:14.5px;padding:10px 12px;outline:none}.field:focus{border-color:var(--acc)}.field.mono{font-family:IBM Plex Mono,monospace}textarea.field{resize:none;line-height:1.5;min-height:auto}.progress{height:5px;background:var(--line);border-radius:3px;margin:10px 0 16px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--acc);transition:width .4s ease}.list{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}.list-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:var(--rpad) 16px;border:none;border-bottom:1px solid var(--line);background:transparent;cursor:pointer;text-align:left;color:var(--ink);min-height:56px;width:100%}.list-row:last-child{border-bottom:none}.list-row:hover{background:var(--paper)}.flag{font-size:10.5px;font-weight:700;letter-spacing:.04em;padding:2px 7px;border-radius:999px;white-space:nowrap}.status-pill{font-size:11px;font-weight:700;letter-spacing:.04em;padding:4px 10px;border-radius:999px}.fab{position:absolute;right:18px;bottom:96px;min-height:52px;padding:14px 22px;border-radius:999px;border:none;background:var(--acc);color:#fff;font-size:15px;font-weight:700;cursor:pointer;box-shadow:0 10px 24px #00000038;z-index:20}.fab:hover{filter:brightness(1.08)}.tabbar{display:flex;border-top:1px solid var(--line);background:var(--card);padding:8px 14px calc(16px + env(safe-area-inset-bottom));gap:8px}.tab{flex:1;min-height:44px;border:none;background:transparent;border-radius:10px;cursor:pointer;font-size:12.5px;color:var(--ink2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.tab .g{font-family:IBM Plex Mono,monospace;font-size:15px}.tab.on{color:var(--ink);font-weight:700}.tab:hover{background:var(--paper)}.toast{position:absolute;left:20px;right:20px;bottom:104px;background:var(--ink);color:var(--paper);border-radius:12px;padding:13px 16px;font-size:13.5px;font-weight:600;box-shadow:0 10px 26px #0000004d;animation:toastup .25s ease;z-index:80;text-align:center}.paper-invoice{margin-top:12px;background:#fffdf8;color:#2b2721;border-radius:6px;padding:24px 22px;box-shadow:0 6px 22px #00000024;border-top:5px solid #2b2721}.paper-invoice .sub{font-size:10.5px;color:#6f675a;line-height:1.6}.paper-line{padding:10px 0;border-bottom:1px solid #e4dcc9;display:flex;justify-content:space-between;gap:12px}.eft{margin-top:14px;background:#f3efe4;border-radius:8px;padding:10px 12px;font-size:11px;line-height:1.65;color:#544d40}.sig-wrap{border:1.5px dashed var(--line);border-radius:12px;background:var(--paper);position:relative}.sig-wrap canvas{width:100%;height:150px;display:block;touch-action:none;cursor:crosshair}.sig-prompt{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;color:var(--ink2);font-family:Lora,serif;font-style:italic;font-size:15px}.sig-rule{position:absolute;left:16px;right:16px;bottom:26px;border-bottom:1px solid var(--line);pointer-events:none}.timeline{display:flex;flex-direction:column}.tl-row{display:flex;gap:12px;align-items:flex-start}.tl-rail{display:flex;flex-direction:column;align-items:center}.tl-dot{width:12px;height:12px;border-radius:50%;box-sizing:border-box;margin-top:3px}.tl-line{width:2px;flex:1;min-height:22px;background:var(--line)}.landing{max-width:430px;margin:0 auto;min-height:100dvh;padding:28px 24px 40px;display:flex;flex-direction:column}.logo-chip{background:#faf3e8;border-radius:10px;padding:8px 12px;align-self:flex-start}.logo-chip img{width:190px;display:block}.warn-card{background:var(--warnSoft);border:1px solid var(--warnLine);border-radius:14px;padding:var(--rpad) var(--pad);color:var(--ink)}@media(min-width:880px){.app-shell{padding:24px 0;align-items:stretch}.app-frame{max-width:660px;min-height:calc(100dvh - 48px);border-radius:16px;overflow:hidden}}:root{--desk: #e7e1d2;--paper: #f7f3ea;--card: #fffdf8;--ink: #2b2721;--ink2: #6f675a;--line: #e4dcc9;--acc: #2e7d54;--accSoft: #e3efe6;--warn: #b4632a;--warnSoft: #f7e8da;--warnLine: #e8cfb4;--pad: 16px;--rpad: 13px}[data-theme=dark]{--desk: #141210;--paper: #211d16;--card: #2b2620;--ink: #efe9db;--ink2: #a89e8c;--line: #3d382e;--acc: #5fb385;--accSoft: #2b3d32;--warn: #d98d52;--warnSoft: #41301e;--warnLine: #5a4227}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:Work Sans,sans-serif;background:var(--desk);color:var(--ink);font-size:16px}button,input,textarea{font-family:inherit;color:inherit}a{color:#2e7d54}a:hover{color:#215c3d}@keyframes toastup{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadein{0%{opacity:0}to{opacity:1}}
