:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:#1e293b;background:#fff;font-synthesis:none;--violet:#6d28d9;--muted:#64748b;--line:#e2e8f0;--surface:#f8fafc}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;width:100%}body{min-height:100svh}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default}button{border:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #06b6d4;outline-offset:3px}button svg,span svg,a svg{display:block;width:22px;height:22px;flex:none}button{touch-action:manipulation}a{color:inherit;text-decoration:none}[hidden]{display:none!important}
#waves{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}#app{position:relative;z-index:1;max-width:560px;margin:auto}.screen{padding:calc(12px + env(safe-area-inset-top)) 22px calc(28px + env(safe-area-inset-bottom));min-height:100svh}#home,#login{display:flex;flex-direction:column}.home-top{display:flex;align-items:center;justify-content:space-between;min-height:44px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700;color:var(--muted)}.brand{display:block;width:min(92%,360px);height:auto;align-self:center;margin:8px auto 0;mix-blend-mode:multiply}.store{text-align:center;font-size:12px;letter-spacing:5px;font-weight:800;margin:-5px 0 28px;color:#475569}.modules{display:flex;flex-direction:column;gap:12px}.module{display:flex;align-items:center;gap:17px;background:color-mix(in srgb,var(--accent) 5%,white);border:1px solid color-mix(in srgb,var(--accent) 18%,white);border-radius:20px;padding:16px;text-align:left;min-height:82px;font-size:19px;font-weight:650;box-shadow:0 3px 12px #0f172a04}.module-icon{background:var(--accent);border-radius:18px;width:48px;height:48px;display:grid;place-items:center;color:white}.module-icon svg{width:25px;height:25px}.violet{--accent:#6d28d9}.pink{--accent:#db2777}.cyan{--accent:#0891b2}.slate{--accent:#475569}.chevron,.pending-dot{margin-left:auto;color:var(--accent)}.pending-dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.4}.module:active:not(:disabled){transform:scale(.99)}.module:disabled .module-icon{opacity:.72}.icon-button{width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;background:transparent;border-radius:14px}.icon-button:hover{background:#f1f5f9}.toolbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;margin:0 -8px 18px;gap:4px}.toolbar h1{font-size:21px;font-weight:700;margin:0}.segments{display:grid;grid-template-columns:1fr 1fr;padding:4px;background:#f1f5f9;border-radius:14px;gap:4px}.segments button{padding:11px 5px;border-radius:11px;background:transparent;font-weight:650;font-size:14px;color:var(--muted)}.segments button.active{background:white;color:var(--violet);box-shadow:0 2px 5px #0f172a0c}.period-bar{display:flex;justify-content:space-between;gap:8px;margin:16px 0 12px}.period-bar button{padding:5px 0;min-height:32px;display:flex;align-items:center;gap:5px;background:transparent;font-size:12px;min-width:0}.period-bar button:last-child{color:var(--violet);font-weight:600}.period-bar svg{width:14px;height:14px}.period-bar span:first-child{overflow-wrap:anywhere}.total-block{padding:20px 18px 14px;background:linear-gradient(130deg,#f6f2ff,#faf9ff 70%,#ecfeff);border:1px solid #e9defc;border-radius:20px}.total-block .eyebrow{font-size:10px;color:#6b5b83;letter-spacing:1.3px}.total{font-size:clamp(24px,6.8vw,36px);font-weight:750;letter-spacing:-1.2px;line-height:1.3;font-variant-numeric:tabular-nums;margin-top:9px;overflow-wrap:anywhere}.currency{font-size:.42em;letter-spacing:0;color:#79678f;margin-left:6px;font-weight:600}.total-foot{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-top:12px;font-size:11px;color:#6b5b83}.sync-button{display:flex;align-items:center;gap:5px;background:transparent;font-size:10px;color:inherit;padding:4px 0;min-height:26px}.sync-button svg{width:13px;height:13px}.sync-button.stale{color:#b45309}#report[aria-busy=true] .sync-button svg{animation:spin 1s linear infinite}.status-line{color:#92400e;background:#fffbeb;font-size:12px;padding:10px 12px;border-radius:10px;margin-top:10px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:24px 0 12px}.section-heading h2{font-size:14px;font-weight:700;margin:0}.section-heading>span{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.payment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.payment{min-width:0;background:var(--surface);border:1px solid #f1f5f9;border-radius:13px;padding:11px 8px}.payment-label{display:block;color:var(--muted);font-size:10px;overflow-wrap:anywhere;margin-bottom:7px}.payment-amount{display:block;font-variant-numeric:tabular-nums;font-size:13px;font-weight:700;overflow-wrap:anywhere}.payment:first-child{background:#f2faf6;border-color:#e5f4ed}.payment:nth-child(2){background:#f3f6ff;border-color:#e9eefc}.payment:nth-child(3){background:#fff9ef;border-color:#f9efdc}.groups{display:flex;flex-direction:column}.group-row{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) auto 12px;align-items:center;gap:10px;background:white;text-align:left;padding:14px 0;border-bottom:1px solid #f1f5f9}.group-initial{width:34px;height:34px;border-radius:12px;background:#f3edff;color:var(--violet);display:grid;place-items:center;font-size:12px;font-weight:700}.group-name{font-size:13px;font-weight:600;overflow-wrap:anywhere;display:block}.group-sub{font-size:10px;color:var(--muted);margin-top:4px;display:block}.group-amount{font-size:13px;font-weight:700;letter-spacing:-.2px;font-variant-numeric:tabular-nums;text-align:right;max-width:135px;overflow-wrap:anywhere}.group-row>svg{width:12px;height:12px;color:#94a3b8}.empty{text-align:center;color:var(--muted);font-size:13px;padding:30px 12px}.sheet{position:fixed;inset:auto 0 0;width:100%;max-width:560px;max-height:90svh;margin:0 auto;border:0;border-radius:26px 26px 0 0;padding:10px 22px calc(24px + env(safe-area-inset-bottom));color:inherit;box-shadow:0 -8px 50px #0f172a13;overscroll-behavior:contain}.sheet[open]{animation:slide-in .2s ease-out}.sheet::backdrop{background:#0f172a55;backdrop-filter:blur(3px)}.sheet-handle{margin:0 auto 8px;width:32px;height:4px;border-radius:3px;background:#cbd5e1}.sheet-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.sheet-header h2{font-size:18px;margin:0;overflow-wrap:anywhere}.quick-periods{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-bottom:20px}.quick-periods button{font-size:10px;padding:10px 2px;background:var(--surface);border:1px solid var(--line);border-radius:9px;min-height:38px}.date-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.date-fields label,.field{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:650;min-width:0}.date-fields input,select{display:block;width:100%;min-width:0;max-width:100%;background:white;border:1px solid var(--line);border-radius:11px;padding:12px 8px;min-height:46px;color:#1e293b;font-size:15px;appearance:none}.date-fields input::-webkit-date-and-time-value{text-align:left}.field{margin-top:18px}.field select{background:var(--surface)}.primary{display:block;width:100%;background:var(--violet);color:white;padding:14px;border-radius:13px;font-weight:650;font-size:15px;min-height:48px}.primary:disabled{opacity:.6}.error{min-height:18px;font-size:12px;color:#b91c1c;margin:12px 0}.login-form{width:100%;max-width:300px;margin:8px auto}.login-form label{font-size:13px;color:var(--muted)}.login-form input{display:block;width:100%;padding:15px;border:1px solid var(--line);border-radius:12px;font-size:22px;letter-spacing:6px;text-align:center;margin:10px 0 16px}#login .brand{margin-top:10svh}.settings-brand{display:flex;align-items:center;gap:15px;margin:24px 0 30px}.settings-brand h2{font-size:22px;margin:0 0 4px}.settings-brand span{font-size:13px;color:var(--muted)}.settings-list{margin:0 0 24px}.settings-list>div{display:flex;justify-content:space-between;gap:15px;padding:18px 0;border-bottom:1px solid var(--line);font-size:13px}.settings-list dd{color:var(--muted);margin:0}.setting-action{display:flex;align-items:center;gap:14px;width:100%;padding:17px 0;background:transparent;text-align:left;font-size:14px;border-bottom:1px solid var(--line)}.danger{color:#b91c1c}.install-instruction{font-size:15px;line-height:1.8;margin:0 0 10px}.detail-total{font-size:32px;font-weight:750;letter-spacing:-1px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:12px 0}.detail-caption{font-size:12px;color:var(--muted);margin:0 0 20px}.allocation-note{font-size:11px;color:var(--muted);margin-top:16px;line-height:1.6}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes slide-in{from{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:350px){.screen{padding-left:16px;padding-right:16px}.module{padding:13px;min-height:74px}.group-row{gap:7px}.group-amount{max-width:105px}.sheet{padding-left:16px;padding-right:16px}.payment-amount{font-size:12px}.brand{width:88%}.store{margin-bottom:20px}}@media(min-width:700px){body{background:linear-gradient(125deg,#faf9fc,#fff 45%,#f6fbfc)}#app{background:#ffffffec;min-height:100svh;border-inline:1px solid #eef2f6}.screen{padding-left:32px;padding-right:32px}.brand{width:320px}.modules{gap:14px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
/* 1.1: reference artwork at its original full-width scale, physical thin waves. */
#home,#login{padding-left:16px;padding-right:16px}.brand{width:100%;max-width:none;margin:0 auto 6px;mix-blend-mode:normal}.home-top{height:48px}.store{margin:0 0 22px}.module{background:color-mix(in srgb,var(--accent) 5%,#fffffff2)}
.total{font-size:clamp(34px,9.2vw,46px);letter-spacing:-1.5px;line-height:1.2;overflow-wrap:normal}.total-block{padding:22px 16px 16px}.total .currency{display:block;margin:4px 0 0;font-size:13px}.total-foot{font-size:12px}.sync-button{font-size:11px}.section-heading{flex-wrap:wrap;margin:24px 0 12px;gap:8px}.section-heading h2{font-size:15px}.section-heading>span{font-size:14px}.section-heading #paid-total{font-size:25px;font-weight:750;color:var(--text);letter-spacing:-.5px;width:100%}.payment-grid{grid-template-columns:minmax(0,1fr);gap:7px}.payment{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:13px 14px;flex-wrap:wrap}.payment-label{font-size:13px;margin:0}.payment-amount{font-size:24px;font-weight:750;letter-spacing:-.55px;margin-left:auto;overflow-wrap:normal}.group-row{grid-template-columns:34px minmax(0,1fr) 14px;gap:5px 10px;padding:16px 0}.group-initial{grid-column:1;grid-row:1}.group-identity{grid-column:2;grid-row:1}.group-name{font-size:15px}.group-sub{font-size:11px}.group-amount{grid-column:2;grid-row:2;text-align:left;max-width:none;font-size:24px;font-weight:750;letter-spacing:-.5px;overflow-wrap:normal}.group-amount .currency{font-size:10px;margin-left:4px;color:var(--muted)}.group-row>svg{grid-column:3;grid-row:1 / 3}.detail-total{font-size:clamp(34px,9.2vw,44px)}.detail-total .currency{display:block;margin:4px 0 0;font-size:13px}.detail-caption{font-size:13px}.margin-toggle{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:10px;text-align:left;padding:16px 18px;border:1px solid #dceae2;background:#f5faf7;border-radius:16px;margin-top:10px;min-height:100px}.margin-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;font-size:13px;color:#456751;font-weight:600}.margin-heading svg{width:20px;height:20px}.margin-value{display:block;max-width:100%;font-size:clamp(28px,8vw,36px);font-weight:750;letter-spacing:-.7px;font-variant-numeric:tabular-nums;overflow-wrap:normal;color:#204b32}.margin-value.masked{filter:blur(9px);user-select:none;-webkit-user-select:none}.margin-value .currency{color:inherit}.margin-note{font-size:11px;line-height:1.4;color:#765b33}.period-bar button{font-size:13px;min-height:38px}#supplier-payments-section{margin-top:8px}.detail-total,.group-amount,.payment-amount,.margin-value{word-break:normal}
@media(max-width:350px){.screen{padding-left:14px;padding-right:14px}.total-block{padding:18px 12px 14px}.total{font-size:32px}.payment{padding:12px 10px}.payment-amount{font-size:22px}.group-amount{font-size:22px}.margin-toggle{padding:14px}.margin-value{font-size:28px}.brand{width:100%}.sheet{padding-left:16px;padding-right:16px}}
@media(min-width:700px){body{background:#fff}.brand{width:100%}#app{background:transparent}}
