:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#142522;background:#f4f7f7;font-synthesis:none;--green:#087b60}*{box-sizing:border-box}body{margin:0;padding:64px 24px;background:radial-gradient(ellipse at 10% 0%,#e8f3ef,transparent 55%);min-height:100vh}main{max-width:1040px;margin:auto}header{display:flex;gap:22px;align-items:center;margin-bottom:38px}.brand-icon{display:grid;place-items:center;flex-shrink:0;width:66px;height:70px;border-radius:20px;background:var(--green);color:white;font-size:48px;box-shadow:0 8px 20px #087b601a}.eyebrow{font-size:10px;font-weight:750;letter-spacing:2px;color:var(--green);margin:0 0 9px}h1{font-size:clamp(24px,3vw,33px);letter-spacing:-1px;line-height:1.2;margin:0}p.intro{color:#647671;margin:10px 0 0;font-size:16px}.receipt{background:#fff;border:1px solid #dce6e2;border-radius:20px;padding:26px 30px;box-shadow:0 5px 24px #263f3503}label{font-weight:600;font-size:16px}.money-input{display:flex;align-items:center;margin-top:15px;border:1px solid #54a68f;border-radius:12px;overflow:hidden}.money-input:focus-within{outline:3px solid #087b6020}.money-input span{font-size:23px;color:#6d8079;padding:16px 24px;border-right:1px solid #e0eae5}.money-input input{font:700 42px/1.2 "Segoe UI",sans-serif;letter-spacing:-1px;width:100%;min-width:0;padding:16px 22px;border:0;outline:none;background:transparent;color:#142522}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:28px 0 17px;gap:12px}h2{font-size:19px;margin:0;letter-spacing:-.4px}#count{color:#84958e;font-size:14px;font-weight:400;margin-left:5px}.button{font:600 13px "Segoe UI",sans-serif;padding:12px 17px;border-radius:9px;border:1px solid transparent;cursor:pointer;touch-action:manipulation}.secondary{background:#fff;border-color:#dce5e0;color:#36544a}.button:hover{filter:brightness(.97)}.button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--green);color:#fff}.boxes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.box{--tone:#087c48;--bg:#edf8f1;--tint:#dff0e5;background:var(--bg);border:1px solid color-mix(in srgb,var(--tone) 14%,transparent);border-radius:18px;padding:24px;min-width:0}.box:nth-child(6n+2){--tone:#1459b7;--bg:#eef5ff;--tint:#dfecfd}.box:nth-child(6n+3){--tone:#d85013;--bg:#fff6ed;--tint:#ffead8}.box:nth-child(6n+4){--tone:#7d48ac;--bg:#f7f0ff;--tint:#ecdef8}.box:nth-child(6n+5){--tone:#997018;--bg:#fffae8;--tint:#f5ebc8}.box:nth-child(6n+6){--tone:#227a89;--bg:#eef9fa;--tint:#dbf0f2}.box-top{display:flex;align-items:center;gap:16px}.box-icon{display:grid;place-items:center;border-radius:50%;width:54px;height:54px;flex-shrink:0;background:var(--tone);color:white;font-size:26px}.box-name{font-size:13px;font-weight:700;overflow-wrap:anywhere;margin-bottom:4px}.box-percent{font-size:34px;line-height:1.1;font-weight:700;letter-spacing:-1px;color:var(--tone)}.box-value{display:block;margin-top:24px;background:var(--tint);padding:18px 8px;text-align:center;border-radius:10px;color:var(--tone);font-size:clamp(22px,2.5vw,32px);font-weight:700;letter-spacing:-1px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.total{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:22px;background:#fff;border:1px solid #dce6e2;border-radius:16px;padding:25px 30px}.total span{font-size:17px;font-weight:600}.total small{display:block;font-size:12px;color:#7d8e87;margin-top:5px}.total strong{color:var(--green);font-size:32px;letter-spacing:-1px;text-align:right;overflow-wrap:anywhere;min-width:0}footer{display:flex;gap:13px;color:#72847c;padding:22px 6px;font-size:12px;line-height:1.7}footer>span{font-size:21px}footer p{margin:0}dialog{width:min(580px,calc(100% - 28px));border:1px solid #dce6e2;border-radius:20px;padding:28px;color:#142522;max-height:90dvh;overflow:auto;box-shadow:0 24px 100px #102f3433}dialog::backdrop{background:#102a2560;backdrop-filter:blur(4px)}.dialog-header{display:flex;justify-content:space-between;align-items:center}.dialog-header h2{font-size:24px}.icon-button{background:transparent;border:0;font-size:28px;color:#73847d;cursor:pointer;width:35px;height:35px}.dialog-description{font-size:14px;color:#6d8078;line-height:1.6;margin:18px 0}.edit-row{display:grid;grid-template-columns:minmax(0,1fr) 100px 35px;gap:10px;align-items:end;margin-bottom:13px}.edit-row label{font-size:11px;display:block;color:#6d8078;margin-bottom:6px}.edit-row input{width:100%;min-width:0;border:1px solid #cfded6;border-radius:8px;padding:11px;font:500 14px "Segoe UI",sans-serif;background:#fff;color:#142522}.edit-row input:focus{outline:2px solid #087b6040;border-color:var(--green)}.remove{font-size:22px;margin-bottom:3px}.add{width:100%;border-style:dashed;margin-top:5px}.allocation{display:flex;justify-content:space-between;margin-top:24px;padding:17px 0;border-top:1px solid #e3ebe7;font-size:14px}.allocation strong{color:var(--green)}.allocation.invalid strong{color:#bd3d30}.error{font-size:12px;color:#bd3d30;line-height:1.5;margin:8px 0 0}.error:empty{display:none}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}button:focus-visible{outline:3px solid #49b69a;outline-offset:3px}@media(max-width:640px){body{padding:28px 16px}header{gap:14px;align-items:flex-start;margin-bottom:25px}.brand-icon{width:46px;height:50px;font-size:34px;border-radius:14px}.eyebrow{font-size:8px;letter-spacing:1.3px}h1{font-size:24px;letter-spacing:-.7px}.intro{font-size:14px!important;line-height:1.5}.receipt{padding:20px}.money-input span{padding:15px;font-size:20px}.money-input input{font-size:34px;padding:14px}.section-heading{margin-top:24px}h2{font-size:17px}.button{padding:11px 12px}.boxes{grid-template-columns:1fr;gap:12px}.box{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:19px 17px}.box-icon{width:44px;height:44px;font-size:23px}.box-top{gap:12px}.box-percent{font-size:29px}.box-value{margin:0;padding:15px 12px;font-size:24px;max-width:52%}.box-name{font-size:12px}.total{padding:21px 18px}.total strong{font-size:25px}.total span{font-size:14px}.total small{font-size:10px}dialog{padding:22px 18px}.edit-row{grid-template-columns:minmax(0,1fr) 85px 28px;gap:7px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,filter .15s}.box{animation:appear .25s ease-out}@keyframes appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}}
