:root{--orange: #f04e30;--orange-600: #d63e22;--orange-50: #fdece8;--navy: #0d1b2a;--navy-700: #1b2c3f;--navy-500: #3a4b5e;--grey: #f2f2f2;--line: #e4e6ea;--text: #1a1a1a;--muted: #6b7380;--green: #1f8a5b;--green-50: #e6f4ee;--red: #c4372a;--white: #fff;--radius: 16px;--shadow: 0 1px 2px rgba(13, 27, 42, .06), 0 4px 16px rgba(13, 27, 42, .06);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--tabbar-h: 64px;font-family:Nunito,Trebuchet MS,system-ui,sans-serif;color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body{margin:0;background:var(--grey);min-height:100%;overscroll-behavior-y:none}body{font-size:16px;line-height:1.45}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}#root{min-height:100dvh;max-width:560px;margin:0 auto;background:var(--grey);position:relative}.header{background:var(--navy);color:var(--white);padding:calc(var(--safe-top) + 14px) 16px 18px;position:sticky;top:0;z-index:10}.header-row{display:flex;align-items:center;gap:12px;min-height:40px}.header-logo{height:26px;display:block}.header h1{font-size:22px;font-weight:800;margin:0;flex:1;letter-spacing:-.2px}.header .sub{color:#b9c3cf;font-size:14px;margin-top:2px}.icon-btn{width:40px;height:40px;border-radius:12px;border:0;display:grid;place-items:center;background:#ffffff14;color:var(--white);flex-shrink:0}.icon-btn:active{background:#ffffff29}.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:var(--orange);color:var(--white);font-weight:800;font-size:14px;border:0}.avatar.sm{width:32px;height:32px;font-size:12px}.avatar.muted{background:var(--navy-500)}.spacer{flex:1}.content{padding:16px 16px calc(var(--tabbar-h) + var(--safe-bottom) + 24px)}.content.no-tabs{padding-bottom:calc(var(--safe-bottom) + 32px)}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center;gap:12px}.section-title{font-size:13px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin:20px 4px 8px}.muted{color:var(--muted)}.small{font-size:14px}.tiny{font-size:12px}.bold{font-weight:800}.right{text-align:right}.pos{color:var(--green)}.neg{color:var(--red)}.card{background:var(--white);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.card.flush{padding:0;overflow:hidden}.card.hero{background:var(--navy);color:var(--white);position:relative;overflow:hidden}.card.hero .muted{color:#b9c3cf}.card.hero:after{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;background:var(--orange);opacity:.18;border-radius:50%}.card.accent{border-left:4px solid var(--orange)}.list-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--white);width:100%;border-left:0;border-right:0;border-top:0;text-align:left}.list-item:last-child{border-bottom:0}button.list-item:active{background:var(--grey)}.grow{flex:1;min-width:0}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tile{background:var(--white);border:0;border-radius:var(--radius);padding:16px;text-align:left;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px;min-height:112px}.tile:active{transform:scale(.98)}.tile .tile-icon{width:40px;height:40px;border-radius:12px;background:var(--orange-50);color:var(--orange);display:grid;place-items:center}.tile .tile-title{font-weight:800;font-size:16px}.tile .tile-sub{font-size:13px;color:var(--muted);margin-top:-6px}.tile.disabled{opacity:.55}.btn{border:0;border-radius:14px;padding:14px 18px;font-weight:800;font-size:16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px}.btn.block{width:100%}.btn.primary{background:var(--orange);color:var(--white)}.btn.primary:active{background:var(--orange-600)}.btn.navy{background:var(--navy);color:var(--white)}.btn.ghost{background:var(--white);color:var(--navy);box-shadow:inset 0 0 0 1.5px var(--line)}.btn.light{background:#ffffff1f;color:var(--white)}.btn.danger{background:transparent;color:var(--red)}.btn.sm{min-height:38px;padding:8px 14px;font-size:14px;border-radius:12px}.btn:disabled{opacity:.5}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:14px;font-weight:700;color:var(--navy-500)}.input{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--white);font-size:16px;outline:none;min-height:48px}.input:focus{border-color:var(--orange)}textarea.input{resize:vertical;min-height:72px}.item-row{display:grid;grid-template-columns:1fr 72px 40px;gap:8px;align-items:center}.item-row .input{min-height:46px}.remove-btn{width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:var(--muted);display:grid;place-items:center}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1.5px solid var(--line);background:var(--white);border-radius:999px;padding:6px 12px;font-weight:700;font-size:14px;min-width:44px}.chip.on{background:var(--orange);border-color:var(--orange);color:var(--white)}.switch{position:relative;width:50px;height:30px;flex-shrink:0}.switch input{opacity:0;width:0;height:0;position:absolute}.switch span{position:absolute;top:0;right:0;bottom:0;left:0;background:#cfd4da;border-radius:999px;transition:.2s}.switch span:before{content:"";position:absolute;width:24px;height:24px;left:3px;top:3px;background:var(--white);border-radius:50%;transition:.2s;box-shadow:0 1px 3px #0003}.switch input:checked+span{background:var(--orange)}.switch input:checked+span:before{transform:translate(20px)}.check{width:28px;height:28px;border-radius:8px;border:2px solid var(--line);display:grid;place-items:center;flex-shrink:0;background:var(--white);color:var(--white)}.check.on{background:var(--green);border-color:var(--green)}.done-text{text-decoration:line-through;color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:800;background:var(--grey);color:var(--navy-500);white-space:nowrap}.badge.orange{background:var(--orange-50);color:var(--orange-600)}.badge.green{background:var(--green-50);color:var(--green)}.badge.red{background:#fbe9e7;color:var(--red)}.badge.live{background:var(--orange);color:var(--white)}.badge.live:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--white);animation:pulse 1.4s infinite}@keyframes pulse{50%{opacity:.3}}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:560px;background:var(--white);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:var(--safe-bottom);z-index:20}.tabbar button{border:0;background:none;height:var(--tabbar-h);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:700;color:var(--muted);position:relative}.tabbar button.on{color:var(--orange)}.tabbar button.on:before{content:"";position:absolute;top:0;width:28px;height:3px;border-radius:0 0 3px 3px;background:var(--orange)}.tabbar .dot{position:absolute;top:10px;right:calc(50% - 18px);width:8px;height:8px;border-radius:50%;background:var(--orange)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d1b2a80;z-index:50;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s}.sheet{background:var(--white);width:100%;max-width:560px;border-radius:22px 22px 0 0;padding:8px 16px calc(var(--safe-bottom) + 20px);max-height:88dvh;overflow-y:auto;animation:up .2s ease-out}.sheet-handle{width:40px;height:5px;border-radius:3px;background:var(--line);margin:4px auto 14px}.sheet h2{margin:0 0 4px;font-size:20px;font-weight:800}@keyframes up{0%{transform:translateY(40px);opacity:.5}}@keyframes fade{0%{opacity:0}}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 16px);background:var(--navy);color:var(--white);padding:12px 18px;border-radius:14px;font-weight:700;font-size:15px;z-index:60;box-shadow:var(--shadow);width:max-content;max-width:calc(100% - 32px);text-align:center;animation:up .2s}.toast.error{background:var(--red)}.login{min-height:100dvh;background:var(--navy);color:var(--white);display:flex;flex-direction:column;padding:calc(var(--safe-top) + 48px) 24px calc(var(--safe-bottom) + 24px)}.login .logo{width:180px;margin-bottom:40px}.login h1{font-size:30px;line-height:1.15;margin:0 0 8px;font-weight:800}.login h1 em{font-style:normal;color:var(--orange)}.login .input{background:#ffffff0f;border-color:#ffffff2e;color:var(--white)}.login .input::placeholder{color:#8796a8}.login .input:focus{border-color:var(--orange)}.login label{color:#b9c3cf}.login .btn.ms{background:#fff;color:#5e5e5e;font-weight:700;gap:12px}.login .btn.ms:disabled{opacity:.7}.login-error{background:#f04e3026;border:1px solid rgba(240,78,48,.5);color:#ffd9d1;border-radius:12px;padding:12px 14px;font-size:14px}.login .foot{margin-top:auto;color:#8796a8;font-size:13px;text-align:center}.empty{text-align:center;padding:28px 16px;color:var(--muted)}.empty .big{font-size:40px;margin-bottom:4px}.banner{background:var(--orange-50);color:var(--orange-600);border-radius:12px;padding:10px 14px;font-size:14px;font-weight:700}.demo-pill{background:var(--orange);color:var(--white);font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;letter-spacing:.4px}.steps{display:flex;gap:6px}.steps div{flex:1;height:4px;border-radius:2px;background:var(--line)}.steps div.on{background:var(--orange)}.total-bar{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--navy);color:var(--white);border-radius:14px;font-weight:800}.money-input{width:104px;text-align:right;font-weight:800}.spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid var(--line);border-top-color:var(--orange);animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.match-lines{padding:0 16px 12px 60px;display:flex;flex-direction:column;gap:2px}.match-lines div{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted)}.match-lines .warn{color:var(--orange-600);font-weight:700}.seg{display:flex;background:var(--white);border-radius:12px;padding:4px;box-shadow:var(--shadow)}.seg button{flex:1;border:0;background:none;padding:9px;border-radius:9px;font-weight:800;font-size:14px;color:var(--muted)}.seg button.on{background:var(--navy);color:var(--white)}
