:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#14231d;background:#e8e4d8;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #14231d;--forest: #13261f;--green: #1f5b46;--mint: #d9eadf;--amber: #f4b641;--paper: #f8f6ef;--line: #d6d2c5;--muted: #67736d;--danger: #a53a32;--shadow: 0 16px 48px rgba(20, 35, 29, .12)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 10% 0%,rgba(244,182,65,.18),transparent 26rem),linear-gradient(180deg,#efede5 0,#e5e1d4)}button,input{font:inherit}button{touch-action:manipulation}.app-shell{width:min(100%,780px);min-height:100vh;margin:0 auto;padding:max(20px,env(safe-area-inset-top)) 16px calc(106px + env(safe-area-inset-bottom))}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}h1,h2,p{margin-top:0}.topbar h1{margin-bottom:0;font-size:clamp(1.7rem,7vw,2.35rem);letter-spacing:-.045em}.eyebrow{margin-bottom:5px;color:var(--green);font-size:.73rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.status-stack{display:flex;align-items:flex-end;flex-direction:column;gap:6px}.connection,.mode-badge,.save-state{display:inline-flex;align-items:center;border-radius:999px;white-space:nowrap;font-size:.72rem;font-weight:700}.connection{gap:6px}.connection i{width:8px;height:8px;border-radius:50%;background:currentColor}.connection.online{color:#1e6b4d}.connection.offline{color:var(--danger)}.mode-badge{padding:5px 9px;color:#5c4a20;background:#f7e5b4}.progress-panel,.search-panel,.count-card,.review-card,.unlock-card,.completion-card{border:1px solid rgba(20,35,29,.08);background:#f8f6eff0;box-shadow:var(--shadow)}.progress-panel{padding:15px 17px;border-radius:16px;margin-bottom:12px}.progress-copy{display:flex;justify-content:space-between;font-size:.88rem}.progress-copy span{color:var(--muted);font-weight:700}.progress-track{height:7px;margin:10px 0 8px;overflow:hidden;border-radius:999px;background:#ddd9cc}.progress-track div{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--amber),#e99a28);transition:width .18s ease}.progress-panel small{color:var(--muted)}.notice,.error-banner{padding:11px 14px;border-radius:12px;margin-bottom:12px;font-size:.84rem;font-weight:600}.notice{color:#28533f;background:var(--mint)}.error-banner{color:#7c2924;background:#f5d8d4}.search-panel{position:relative;z-index:4;padding:14px;border-radius:16px;margin-bottom:12px;box-shadow:0 8px 24px #14231d14}.search-panel>label{display:block;margin:0 0 7px 2px;font-size:.78rem;font-weight:700}.search-box{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:#fff}.search-box span{color:var(--muted);font-size:1.45rem;line-height:1;transform:rotate(-15deg)}.search-box input{width:100%;min-height:48px;border:0;outline:0;background:transparent;font-size:1rem}.search-results{position:absolute;top:calc(100% - 4px);right:14px;left:14px;overflow:hidden;border:1px solid var(--line);border-radius:0 0 14px 14px;background:#fff;box-shadow:0 16px 30px #14231d2e}.search-results button{display:grid;width:100%;padding:12px 14px;border:0;border-bottom:1px solid #ebe8df;text-align:left;background:#fff;cursor:pointer}.search-results button:hover{background:#f5f3ec}.search-results span{overflow:hidden;color:var(--muted);font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}.search-results p{margin:0;padding:16px;color:var(--muted)}.count-card,.review-card{padding:20px;border-radius:22px}.item-heading,.review-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.item-position{display:block;margin-bottom:4px;color:var(--muted);font-size:.76rem;font-weight:600}.item-heading h2{margin-bottom:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:clamp(1.65rem,8vw,2.4rem);letter-spacing:-.04em}.save-state{padding:6px 9px;color:#6c706c;background:#ebe8df}.save-state.draft{color:#7b5611;background:#f8e9bb}.save-state.saved{color:#205b43;background:#dcece2}.description{min-height:2.8em;margin:12px 0 18px;color:#39463f;font-size:1.03rem;font-weight:600;line-height:1.4}.facts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px}.facts-grid>div{min-width:0;padding:12px 10px;border-radius:12px;background:#eae7dd}.facts-grid span,.totals-panel span{display:block;color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.facts-grid strong{display:block;margin-top:2px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.1rem}.facts-grid small{display:block;overflow:hidden;color:var(--muted);font-size:.65rem;text-overflow:ellipsis;white-space:nowrap}.quantity-stack{display:grid;gap:12px}.quantity-field{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.quantity-field label{display:block;font-weight:700}.quantity-field span{display:block;margin-top:2px;color:var(--muted);font-size:.74rem}.stepper{display:grid;grid-template-columns:48px 66px 48px;gap:5px}.stepper button,.stepper input{height:50px;border:1px solid var(--line);border-radius:11px}.stepper button{color:var(--ink);background:#eeeae0;font-size:1.45rem;font-weight:600;cursor:pointer}.stepper button:active{transform:scale(.96);background:#ded9cc}.stepper input{width:66px;padding:0 4px;color:var(--ink);text-align:center;background:#fff;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.1rem;appearance:textfield}.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{margin:0;appearance:none}.totals-panel{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;padding:14px;border-radius:15px;color:#fff;background:var(--forest)}.totals-panel>div+div{border-left:1px solid rgba(255,255,255,.18);padding-left:14px}.totals-panel span{color:#bbccc4}.totals-panel strong{display:block;margin-top:3px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.7rem}.totals-panel .positive strong{color:#76d6a7}.totals-panel .negative strong{color:#ff9e91}.totals-panel .even strong{color:#f9cf70}.primary-button,.secondary-button,.nav-button,.review-button,.text-button{min-height:50px;border-radius:12px;font-weight:700;cursor:pointer}.primary-button{border:0;color:var(--forest);background:var(--amber);box-shadow:0 7px #c68521}.primary-button:active:not(:disabled){transform:translateY(3px);box-shadow:0 4px #c68521}.primary-button:disabled{color:#7a7d75;background:#d7d4ca;box-shadow:none;cursor:not-allowed}.secondary-button{padding:0 18px;border:1px solid var(--line);background:#fff}.full-width{width:100%}.save-button{margin-top:16px}.autosave-note{margin:12px 0 0;color:var(--muted);text-align:center;font-size:.76rem}.bottom-actions{position:fixed;z-index:5;right:0;bottom:0;left:0;display:grid;grid-template-columns:1fr auto 1fr;gap:8px;width:min(100%,780px);margin:0 auto;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid rgba(20,35,29,.12);background:#f8f6efed;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.nav-button,.review-button{border:1px solid var(--line);background:#fff}.nav-button:last-child{justify-self:stretch}.nav-button:disabled{opacity:.42;cursor:not-allowed}.review-button{padding:0 18px;color:#fff;border-color:var(--forest);background:var(--forest)}.review-card{padding-bottom:14px}.review-heading h2{margin-bottom:0;font-size:1.7rem;letter-spacing:-.03em}.text-button{min-height:40px;padding:0 12px;color:var(--green);border:0;background:transparent}.review-summary{margin-bottom:16px;color:var(--muted)}.review-list{display:grid;gap:8px}.review-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;width:100%;padding:12px;border:1px solid var(--line);border-radius:13px;text-align:left;background:#fff;cursor:pointer}.review-row>div:first-child{min-width:0}.review-row>div:first-child strong{display:block;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.review-row>div:first-child span{display:block;overflow:hidden;color:var(--muted);font-size:.74rem;text-overflow:ellipsis;white-space:nowrap}.review-numbers{display:grid;grid-template-columns:auto auto;gap:1px 10px;text-align:right;font-size:.72rem}.review-numbers>span{color:var(--muted)}.review-numbers strong{color:var(--ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.review-numbers em{grid-column:1 / -1;font-style:normal;font-weight:700}.review-numbers .complete{color:var(--green)}.review-numbers .incomplete{color:var(--danger)}.submit-panel{position:sticky;bottom:0;margin:12px -6px -6px;padding:12px 6px 6px;background:linear-gradient(transparent,var(--paper) 18%)}.submit-panel p{color:var(--danger);font-size:.8rem}.center-screen{display:grid;min-height:100vh;place-items:center;padding:20px}.unlock-card,.completion-card{width:min(100%,420px);padding:28px;border-radius:24px}.unlock-card h1,.completion-card h1{margin-bottom:10px;font-size:2rem;letter-spacing:-.04em}.unlock-card label{display:block;margin:18px 0 7px;font-size:.82rem;font-weight:700}.unlock-card input{width:100%;height:52px;padding:0 13px;border:1px solid var(--line);border-radius:12px;background:#fff}.unlock-card form .primary-button{margin-top:14px}.brand-mark{display:grid;width:52px;height:52px;margin-bottom:20px;place-items:center;border-radius:14px;color:var(--forest);background:var(--amber);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.45rem}.muted{color:var(--muted)}.error-text{color:var(--danger)}.completion-card{text-align:center}.success-check{display:grid;width:72px;height:72px;margin:0 auto 20px;place-items:center;border-radius:50%;color:#fff;background:var(--green);font-size:2.2rem;font-weight:700}.receipt-destination{padding:12px;border-radius:11px;color:#355044;background:var(--mint);font-size:.8rem;word-break:break-word}.loader{width:44px;height:44px;border:5px solid #d7d2c5;border-top-color:var(--amber);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:700px){.app-shell{padding-right:24px;padding-left:24px}.count-card{padding:28px}.quantity-stack{grid-template-columns:1fr 1fr;gap:22px}.quantity-field{display:block}.stepper{margin-top:10px;grid-template-columns:54px minmax(82px,1fr) 54px}.stepper input{width:100%}}@media(max-width:390px){.app-shell{padding-right:10px;padding-left:10px}.count-card{padding:16px}.stepper{grid-template-columns:44px 58px 44px}.stepper input{width:58px}.facts-grid small{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
