:root{--primary:#f97316;--primary-hover:#ea580c;--bg-color:#fff7ed;--surface:#fff;--text-main:#0f172a;--text-muted:#64748b;--border-color:#e2e8f0;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.5rem}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-main);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}button{touch-action:manipulation;-webkit-user-select:none;user-select:none}#root{flex-direction:column;min-height:100dvh;display:flex}h1{color:var(--text-main);font-size:2rem;font-weight:700}h2{color:var(--text-main);font-size:1.5rem;font-weight:600}h3{color:var(--text-main);font-size:1.25rem;font-weight:600}p{color:var(--text-muted);font-size:1rem}.container{max-width:800px;padding:1.5rem;padding-left:max(1.5rem, env(safe-area-inset-left));padding-right:max(1.5rem, env(safe-area-inset-right));padding-bottom:max(1.5rem, calc(env(safe-area-inset-bottom) + .5rem));flex-direction:column;flex-grow:1;width:100%;margin:0 auto;display:flex}.header{padding:1rem 1.5rem;padding-top:max(1rem, env(safe-area-inset-top));padding-left:max(1.5rem, env(safe-area-inset-left));padding-right:max(1.5rem, env(safe-area-inset-right));background-color:var(--surface);min-height:64px;box-shadow:var(--shadow-sm);z-index:10;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.header-title{color:var(--primary);align-items:center;gap:.75rem;font-size:1.25rem;font-weight:700;display:flex}.card{background-color:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);padding:1.5rem;transition:all .2s}@media (hover:hover){.card:hover{box-shadow:var(--shadow-md)}}button.action-card{background-color:var(--surface);border-radius:var(--radius-xl);cursor:pointer;box-shadow:var(--shadow-md);width:100%;color:var(--text-main);border:2px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:2rem;font-size:1.25rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}@media (hover:hover){button.action-card:hover{box-shadow:var(--shadow-lg);border-color:var(--primary);color:var(--primary);transform:translateY(-4px)}button.action-card:hover svg{transform:scale(1.1)}}button.action-card:active{border-color:var(--primary);color:var(--primary);transform:scale(.98)}button.action-card svg{width:48px;height:48px;color:var(--primary);transition:transform .3s}.btn{border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;min-height:48px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{background-color:var(--primary);color:#fff;box-shadow:0 4px 14px #f9731663}@media (hover:hover){.btn-primary:hover{background-color:var(--primary-hover);transform:translateY(-1px)}}.btn-primary:active{background-color:var(--primary-hover);transform:translateY(1px)}.btn-outline{border:1px solid var(--border-color);color:var(--text-main);background-color:#0000}@media (hover:hover){.btn-outline:hover{background-color:var(--bg-color);border-color:var(--text-muted)}}.btn-outline:active{background-color:var(--bg-color)}.input-group{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.input-label{color:var(--text-muted);font-size:.875rem;font-weight:600}.input-field{border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--surface);outline:none;width:100%;min-height:48px;padding:.75rem 1rem;font-size:16px;transition:border-color .2s,box-shadow .2s}.input-field:focus{border-color:var(--primary);box-shadow:0 0 0 3px #f9731633}.select-field{appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-position:right 1rem center;background-repeat:no-repeat;background-size:1em}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.4s forwards fadeIn}.grid-2{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}@media (width<=600px){.grid-2{grid-template-columns:1fr}}.container.inventory-container{max-width:640px}.numpad{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:2rem;display:grid}.numpad-btn{background-color:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-md);min-height:56px;color:var(--text-main);cursor:pointer;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;padding:clamp(.85rem,2.6vh,1.25rem);font-size:1.5rem;font-weight:600;transition:all .1s;display:flex}.numpad-btn:active{background-color:var(--border-color);transform:scale(.95)}.numpad-btn.control{background-color:var(--bg-color);color:var(--text-muted);font-size:1rem}.progress-container{background-color:var(--border-color);border-radius:4px;width:100%;height:8px;margin:1rem 0;overflow:hidden}.progress-bar{background-color:var(--primary);height:100%;transition:width .3s}.nav-btn-tall{background-color:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-md);width:64px;color:var(--text-muted);cursor:pointer;box-shadow:var(--shadow-sm);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.nav-btn-tall:active:not(:disabled){background-color:var(--border-color);transform:scale(.95)}.nav-btn-tall:disabled{opacity:.3;cursor:not-allowed;box-shadow:none}.nav-btn-tall.primary{background-color:var(--primary);color:#fff;border:none;box-shadow:0 4px 14px #f9731663}.nav-btn-tall.primary:active{background-color:var(--primary-hover)}@media (width>=700px){.numpad{gap:1rem}.numpad-btn{padding:1.6rem;font-size:2rem}.nav-btn-tall{width:84px;font-size:1rem}}@media (width<=600px){.container{padding-top:1rem;padding-left:max(1rem, env(safe-area-inset-left));padding-right:max(1rem, env(safe-area-inset-right))}.header{padding-left:max(1rem, env(safe-area-inset-left));padding-right:max(1rem, env(safe-area-inset-right))}.header-title{gap:.5rem;font-size:1.125rem}.card{padding:1.25rem}.btn{white-space:nowrap;padding-left:1rem;padding-right:1rem}.chart-card{height:300px!important}}.home{flex-direction:column;min-height:100dvh;display:flex}.home-inner{width:100%;max-width:720px;padding-left:max(1.25rem, env(safe-area-inset-left));padding-right:max(1.25rem, env(safe-area-inset-right));margin:0 auto}.home-hero{color:#fff;padding-top:max(1rem, env(safe-area-inset-top));background:radial-gradient(600px 500px at 70% -20%,#ffb658cc 0%,#ffb65800 45%),radial-gradient(400px 400px at 20% 80%,#ff643266 0%,#ff643200 50%),linear-gradient(135deg,#ff9f43 0%,#f97316 35%,#ff6b35 65%,#ea580c 100%);border-radius:0 0 2.5rem 2.5rem;padding-bottom:4.5rem;position:relative;overflow:hidden;box-shadow:0 20px 50px -20px #ea580c99,inset 0 1px #fff3}.home-hero:before{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff26 0%,#ffffff0a 60%,#fff0 100%);border-radius:50%;width:500px;height:500px;animation:8s ease-in-out infinite heroBubble1;position:absolute;top:-180px;right:-150px}.home-hero:after{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff1f 0%,#ffffff08 60%,#fff0 100%);border-radius:50%;width:300px;height:300px;animation:10s ease-in-out infinite reverse heroBubble2;position:absolute;bottom:-80px;left:-100px}.home-hero .home-inner{z-index:1;position:relative}.home-hero-top{justify-content:space-between;align-items:center;gap:.75rem;min-height:48px;display:flex}.home-brand{letter-spacing:.04em;font-size:1.05rem;font-weight:800}.home-store{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;cursor:pointer;background:#fff3;border:1px solid #ffffff73;border-radius:999px;align-items:center;gap:.5rem;max-width:55%;min-height:44px;padding:0 1rem;font-size:.9rem;font-weight:700;display:inline-flex}.home-store span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.home-store:active{background:#ffffff52}.home-hero-body{justify-content:space-between;align-items:center;gap:.5rem;margin-top:1.25rem;display:flex}.home-eyebrow{color:#fff;letter-spacing:.08em;background:#ffffff38;border-radius:999px;margin-bottom:.6rem;padding:.15rem .75rem;font-size:.8rem;font-weight:700;display:inline-block}.home-hero h1{color:#fff;letter-spacing:.01em;text-shadow:0 2px 12px #9a341259;font-size:clamp(1.45rem,5.6vw,2.4rem);font-weight:800;line-height:1.35}.home-mascot{cursor:pointer;filter:drop-shadow(0 20px 40px #9a341266);background:0 0;border:none;flex-shrink:0;width:clamp(150px,38vw,280px);padding:0;animation:4.5s ease-in-out infinite homeFloat;position:relative}.home-mascot:before{content:"";background:radial-gradient(circle,#fffffff2 0%,#ffffff73 50%,#fff0 75%),radial-gradient(circle,#ffdcc84d 0%,#ffdcc800 60%);border-radius:50%;position:absolute;inset:5% 2% 2%;box-shadow:0 0 40px #ffffff4d}.home-mascot img{filter:drop-shadow(0 16px 24px #9a341259)brightness(1.05);width:100%;height:auto;transition:filter .3s;display:block;position:relative}.home-mascot:hover img{filter:drop-shadow(0 20px 32px #9a341273)brightness(1.1)}@keyframes homeFloat{0%,to{transform:translateY(0)rotate(-3deg)scale(1)}50%{transform:translateY(-12px)rotate(3deg)scale(1.02)}}@keyframes heroBubble1{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-30px,30px)scale(1.1)}}@keyframes heroBubble2{0%,to{transform:translate(0)scale(1)}50%{transform:translate(40px,-40px)scale(.95)}}.home-menu{z-index:2;flex:1;grid-template-columns:repeat(2,1fr);align-content:start;gap:1rem;margin-top:-3rem;display:grid;position:relative}.home-card{text-align:left;min-height:176px;color:var(--text-main);cursor:pointer;animation:.5s cubic-bezier(.2,.8,.2,1) both homeRise;animation-delay:calc(var(--i,0) * 70ms + .12s);background:#fff;border:1px solid #f973161a;border-radius:1.75rem;flex-direction:column;align-items:flex-start;gap:.2rem;padding:1.25rem;transition:transform .18s,box-shadow .18s;display:flex;position:relative;box-shadow:0 10px 28px -12px #9a341247}.home-card:active:not(:disabled){transform:scale(.97);box-shadow:0 6px 16px -10px #9a34124d}@media (hover:hover){.home-card:hover:not(:disabled){transform:translateY(-4px);box-shadow:0 18px 34px -14px #9a341261}}.home-card-icon{color:#fff;background:linear-gradient(145deg,#ffa23d 0%,#f97316 55%,#ea580c 100%);border-radius:1.1rem;justify-content:center;align-items:center;width:60px;height:60px;margin-bottom:auto;display:flex;box-shadow:0 8px 16px -6px #ea580c99,inset 0 1px #ffffff73}.home-card-icon svg{width:30px;height:30px}.home-card-title{margin-top:1rem;font-size:1.15rem;font-weight:800;line-height:1.3}.home-card-desc{color:var(--text-muted);font-size:.8rem;line-height:1.4}.home-card-arrow{color:#f97316;opacity:.55;width:22px;height:22px;position:absolute;top:1.25rem;right:1rem}.home-card:disabled{cursor:default;box-shadow:none;background:#ffffffb3;border-style:dashed}.home-card:disabled .home-card-icon{box-shadow:none;opacity:.8;background:linear-gradient(145deg,#fdba74 0%,#fb923c 100%)}.home-card:disabled .home-card-title{color:var(--text-muted)}.home-card-badge{color:#c2410c;letter-spacing:.05em;background:#ffedd5;border-radius:999px;padding:.15rem .6rem;font-size:.7rem;font-weight:800;position:absolute;top:1.25rem;right:1rem}.home-footer{padding:1.5rem 1rem max(1.25rem, env(safe-area-inset-bottom));text-align:center;color:var(--text-muted);font-size:.8rem}@keyframes homeRise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.home-mascot,.home-card{animation:none}}@media (width>=700px){.home-hero{padding-bottom:6rem}.home-hero-body{margin-top:2rem}.home-brand{font-size:1.2rem}.home-menu{grid-auto-rows:minmax(240px,1fr);gap:1.5rem;margin-top:-4rem;padding-bottom:1rem}.home-card{min-height:240px;padding:1.75rem}.home-card-icon{border-radius:1.4rem;width:72px;height:72px}.home-card-icon svg{width:36px;height:36px}.home-card-title{font-size:1.4rem}.home-card-desc{font-size:.95rem}}@media (width<=600px){.home-hero h1{font-size:1.25rem}.home-mascot{width:112px}.home-menu{gap:.875rem}.home-card{border-radius:1.5rem;min-height:160px;padding:1rem}.home-card-title{font-size:1rem}.home-card-desc{font-size:.75rem}.home-card-arrow,.home-card-badge{top:1rem;right:.75rem}}.home-mascot img{transform-origin:50% 90%;-webkit-user-drag:none}.home-mascot img.bump{animation:.42s cubic-bezier(.3,.7,.4,1) pigBump}@keyframes pigBump{0%{transform:scale(1)}25%{transform:scale(1.13,.86)}55%{transform:scale(.94,1.08)}80%{transform:scale(1.03,.98)}to{transform:scale(1)}}.coin-layer{z-index:100;pointer-events:none;position:fixed;inset:0;overflow:hidden}.coin{width:var(--s);height:var(--s);margin:calc(var(--s) / -2) 0 0 calc(var(--s) / -2);will-change:transform, opacity;position:absolute;top:0;left:0}.coin-face{color:#b45309;width:100%;height:100%;font-size:calc(var(--s) * .55);animation:coinSpin var(--spin,.7s) linear infinite;background:radial-gradient(circle at 35% 30%,#fff6bf 0%,#ffd84d 42%,#f5a300 100%);border:2px solid #d98200;border-radius:50%;place-items:center;font-weight:900;line-height:1;display:grid;box-shadow:inset 0 0 0 3px #ffffff59,0 3px 6px #9a341259}@keyframes coinSpin{0%{transform:perspective(180px)rotateY(0)}to{transform:perspective(180px)rotateY(360deg)}}.invoice-check{flex-direction:column;gap:2rem;padding:1.5rem;display:flex}.invoice-upload{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:2rem}.upload-area{justify-content:center;display:flex}.upload-button{border:2px dashed var(--primary);border-radius:var(--radius-lg);width:100%;max-width:300px;color:var(--primary);cursor:pointer;background:#f973160d;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:2rem;font-weight:600;transition:all .3s;display:flex}.upload-button:hover:not(:disabled){border-color:var(--primary-hover);background:#f9731626}.upload-button:disabled{opacity:.6;cursor:not-allowed}.upload-button small{color:var(--text-muted);font-size:.85rem;font-weight:400}.invoice-preview{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.5rem}.invoice-preview img{object-fit:contain;border-radius:var(--radius-md);width:100%;max-height:400px}.invoice-preview h3{margin-bottom:1rem}.error-message{color:#991b1b;border-radius:var(--radius-md);background:#fee2e2;border-left:4px solid #dc2626;padding:1rem}.invoice-result{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.5rem}.invoice-result h3{margin-bottom:1rem}.extracted-items table{border-collapse:collapse;width:100%}.extracted-items th,.extracted-items td{text-align:left;border-bottom:1px solid var(--border-color);padding:.75rem}.extracted-items th{color:var(--primary);background-color:#f973161a;font-weight:600}.extracted-items td.quantity{text-align:right;font-weight:600}.no-data{text-align:center;color:var(--text-muted);padding:2rem}.invoice-date-row{align-items:center;gap:.75rem;margin-bottom:1rem;font-size:.9rem;display:flex}.invoice-input{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface);width:100%;min-height:40px;padding:.4rem .6rem;font-size:1rem}.invoice-count{text-align:right;width:4.5rem;font-weight:700}.invoice-count.changed{border-color:var(--primary);background:#f973161a}.invoice-add{border:1px dashed var(--primary);color:var(--primary);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.4rem;margin-top:.75rem;padding:.5rem .9rem;font-weight:600;display:inline-flex}.invoice-note{margin-top:1rem;font-size:.85rem}.invoice-save{border-radius:var(--radius-md);background:var(--primary);color:#fff;cursor:pointer;border:none;width:100%;min-height:48px;margin-top:1rem;font-size:1rem;font-weight:700}.invoice-save:disabled{opacity:.6;cursor:not-allowed}.header-back{width:40px;height:40px;color:var(--text-main);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}
