:root{--font:system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", Arial, sans-serif;--fs-small:18px;--fs-body:20px;--fs-title:28px;--fs-display:44px;--c-bg:#faf7f0;--c-surface:#fff;--c-text:#1a1a1a;--c-muted:#4a4a4a;--c-border:#d6d0c4;--c-brand:#1f3a2b;--c-thu:#1e7b34;--c-chi:#b45309;--c-suco:#b91c1c;--c-dark:#1f2937;--c-zalo:#0068ff;--c-good:#1e7b34;--c-bad:#b91c1c;--c-tint-thu:#e7f3ea;--c-tint-chi:#fbefe3;--c-tint-suco:#fbe9e9;--radius:16px;--gap:16px;--btn-h:72px;--btn-h-xl:120px}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);font-size:var(--fs-body);color:var(--c-text);background:var(--c-bg);-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;overscroll-behavior:none;line-height:1.4}#app{min-height:100%}.screen{gap:var(--gap);min-height:100dvh;padding:calc(env(safe-area-inset-top) + 12px) 16px calc(env(safe-area-inset-bottom) + 16px);flex-direction:column;max-width:520px;margin:0 auto;display:flex}.screen-body{gap:var(--gap);flex-direction:column;flex:1;display:flex}.screen-foot{flex-direction:column;gap:12px;display:flex}.row{gap:12px;display:flex}.row>*{flex:1}.title{font-size:var(--fs-title);margin:4px 0 0;font-weight:700;line-height:1.25}.brand{font-size:var(--fs-title);color:var(--c-brand);margin:0;font-weight:800}.sub{font-size:var(--fs-small);color:var(--c-muted);margin:0}.display{font-size:var(--fs-display);font-weight:800;line-height:1.1}.words{font-size:var(--fs-body);color:var(--c-muted);min-height:1.4em}.sentence{font-size:var(--fs-title);margin:0;line-height:1.35}.good{color:var(--c-good)}.bad{color:var(--c-bad)}.center{text-align:center}.btn{appearance:none;border-radius:var(--radius);min-height:var(--btn-h);font:inherit;color:#fff;background:var(--c-dark);text-align:center;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;border:0;justify-content:center;align-items:center;gap:12px;width:100%;padding:12px 20px;font-size:24px;font-weight:700;display:flex}.btn:active{filter:brightness(.92);transform:scale(.98)}.btn:disabled{opacity:.4}.btn-xl{min-height:var(--btn-h-xl);letter-spacing:.5px;font-size:34px}.btn-thu{background:var(--c-thu)}.btn-chi{background:var(--c-chi)}.btn-suco{background:var(--c-suco)}.btn-dark{background:var(--c-dark)}.btn-brand{background:var(--c-brand)}.btn-zalo{background:var(--c-zalo)}.btn-danger{background:var(--c-bad)}.btn-light{background:var(--c-surface);color:var(--c-text);border:2px solid var(--c-border)}.btn-back{color:var(--c-text);border:2px solid var(--c-border);background:0 0;justify-content:flex-start;min-height:64px;font-size:22px}.btn-small{min-height:64px;padding:8px 14px;font-size:20px}.choices{flex-direction:column;gap:12px;display:flex}.choices .btn{text-align:left;justify-content:flex-start}.amount-box{background:var(--c-surface);border:2px solid var(--c-border);border-radius:var(--radius);text-align:right;padding:12px 16px}.amount-box .display{overflow-wrap:anywhere}.amount-box .unit{font-size:var(--fs-title);color:var(--c-muted);font-weight:600}.keypad{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.key{appearance:none;border:2px solid var(--c-border);background:var(--c-surface);color:var(--c-text);border-radius:var(--radius);min-height:68px;font:inherit;touch-action:manipulation;-webkit-user-select:none;user-select:none;font-size:32px;font-weight:700}.key:active{background:#ece7dc}.key-fn{background:#f1ede4;font-size:22px}.key-blank{visibility:hidden}.chip{appearance:none;border:2px solid var(--c-thu);background:var(--c-tint-thu);color:var(--c-thu);min-height:64px;font:inherit;border-radius:999px;width:100%;padding:8px 20px;font-size:22px;font-weight:700}.card{appearance:none;text-align:left;width:100%;font:inherit;color:inherit;background:var(--c-surface);border:2px solid var(--c-border);border-radius:var(--radius);padding:16px;display:block}button.card:active{background:#f3efe6}.card h3{margin:0 0 6px;font-size:22px}.card-thu{border-left:10px solid var(--c-thu)}.card-chi{border-left:10px solid var(--c-chi)}.card-suco{border-left:10px solid var(--c-suco)}.card-dark{border-left:10px solid var(--c-dark)}.progress{background:#ece7dc;border-radius:999px;height:22px;margin:8px 0 4px;overflow:hidden}.progress>div{background:var(--c-thu);border-radius:999px;height:100%}.thumb{object-fit:cover;border-radius:12px;flex:none;width:88px;height:88px}.photo-preview{object-fit:contain;border-radius:var(--radius);background:#000;width:100%;max-height:50vh}.status{font-size:var(--fs-small);color:var(--c-muted);text-align:center;background:#f1ede4;border-radius:12px;padding:8px}.status-ok{background:var(--c-tint-thu);color:var(--c-thu)}.done{background:var(--c-thu);color:#fff;z-index:10;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex;position:fixed;inset:0}.done .mark{font-size:96px;line-height:1}.done .display{color:#fff}.entry{flex-direction:column;gap:10px;display:flex}.entry-head{align-items:flex-start;gap:12px;display:flex}.entry-meta{font-size:var(--fs-small);color:var(--c-muted)}.badge{color:var(--c-muted);background:#f1ede4;border-radius:999px;padding:2px 10px;font-size:16px;display:inline-block}.field{flex-direction:column;gap:6px;display:flex}.field label{font-size:var(--fs-small);color:var(--c-muted)}.input{font:inherit;font-size:var(--fs-body);border:2px solid var(--c-border);background:var(--c-surface);min-height:56px;color:var(--c-text);border-radius:12px;width:100%;padding:8px 12px}.section-title{margin:12px 0 0;font-size:22px;font-weight:700}table.report{border-collapse:collapse;width:100%;font-size:var(--fs-small)}table.report td,table.report th{border-bottom:1px solid var(--c-border);text-align:left;padding:8px 4px}table.report td:last-child,table.report th:last-child{text-align:right}.money{font-size:32px;font-weight:800;line-height:1.2}.money.chi{color:var(--c-chi)}.badge.tag-thu{background:var(--c-thu);color:#fff}.badge.tag-chi{background:var(--c-chi);color:#fff}.badge.tag-suco{background:var(--c-suco);color:#fff}.badge[class*=tag-]{vertical-align:middle;padding:4px 12px;font-size:18px;font-weight:800}
