:root{--brown: #8b5a2b;--bg: #faf7f2;--ink: #2b2118;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:18px;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh}h1{font-size:1.6rem;margin:0 0 1rem}.login{max-width:420px;margin:0 auto;padding:3rem 1.25rem}.login form{display:grid;gap:1.1rem}label{display:grid;gap:.4rem;font-weight:600}input{font:inherit;padding:.9rem;border:2px solid #cdbfae;border-radius:12px;background:#fff}button.big{font:inherit;font-weight:700;padding:1rem;border:0;border-radius:12px;background:var(--brown);color:#fff}button.big:disabled{opacity:.6}.error{color:#b3261e;font-weight:600}h2{font-size:1.25rem;margin:1.5rem 0 .75rem}select{font:inherit;padding:.9rem;border:2px solid #cdbfae;border-radius:12px;background:#fff}.hint{font-weight:400;font-size:.85rem;color:#6b5a48}button.secondary,button.danger{font:inherit;font-weight:600;padding:1rem;border-radius:12px;border:2px solid #cdbfae;background:#fff;color:var(--ink);width:100%}button.danger{color:#b3261e;border-color:#e3b5b1}button.small{width:auto;padding:.5rem .8rem;font-size:.85rem}button.big{width:100%}button.big.alt{background:#5c3c1c}button:disabled{opacity:.6}.panel{display:grid;gap:1rem;max-width:520px}.panel h2{margin:0}.toggle{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:.5rem}.toggle button{font:inherit;font-weight:700;padding:1rem;border-radius:12px;border:2px solid #cdbfae;background:#fff}.toggle button.on{background:var(--brown);border-color:var(--brown);color:#fff}.chips{display:flex;gap:.5rem;margin-top:.25rem}.chips button{font:inherit;padding:.5rem 1rem;border-radius:999px;border:2px solid #cdbfae;background:#fff}.qty{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.actions{display:grid;gap:.6rem;max-width:520px;margin-bottom:1.25rem}.card{display:block;width:100%;max-width:520px;text-align:left;font:inherit;color:inherit;background:#fff;border:1px solid #ddd0bf;border-radius:14px;padding:1rem;margin-bottom:.75rem}.card-title{font-weight:800;font-size:1.15rem;margin-bottom:.4rem}.card-title small{font-weight:600;color:#7a6b5a;font-size:.8rem;margin-left:.4rem}.row{display:flex;justify-content:space-between;gap:1rem;padding:.25rem 0;font-size:.95rem}.row span:last-child{text-align:right}.row.strong{font-weight:800;font-size:1.05rem;border-top:1px solid #eee3d3;margin-top:.25rem;padding-top:.5rem}.row.neg{color:#b3261e}.history{max-width:520px;margin-top:1.5rem}.history summary{font-weight:700;padding:.75rem 0}.move{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-top:1px solid #eee3d3}.move-right{display:grid;gap:.4rem;justify-items:end;font-size:.9rem}.choices{display:grid;gap:.6rem}.choices button{font:inherit;font-weight:700;padding:1.1rem;border-radius:12px;border:2px solid #cdbfae;background:#fff;color:var(--ink);text-align:left}.choices button small{display:block;font-weight:400;font-size:.85rem;margin-top:.25rem}.choices button.on{background:var(--brown);border-color:var(--brown);color:#fff}.subpanel{display:grid;gap:.75rem;background:#fff;border:1px solid #ddd0bf;border-radius:14px;padding:1rem}.linerow{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:#fff;border:1px solid #ddd0bf;border-radius:12px;padding:.75rem 1rem;font-weight:600}.sumrow{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px solid #eee3d3}.sumrow span:last-child{text-align:right}button.link{font:inherit;font-size:.9rem;border:0;background:none;color:var(--brown);text-decoration:underline;padding:.25rem}.totals{background:#f1e6d6;border-radius:12px;padding:.9rem 1rem;margin:0}.warn{background:#fff3cd;border:1px solid #e6c65c;border-radius:12px;padding:.9rem 1rem}.neg{color:#b3261e}.figs{display:grid;gap:.15rem;margin:0;font-size:.92rem}.figs div{display:flex;justify-content:space-between;gap:1rem}.figs dt{color:#6b5a48}.figs dd{margin:0;text-align:right}.figs .strong{font-weight:800;border-top:1px solid #eee3d3;padding-top:.3rem;margin-top:.2rem}.monthbar{display:flex;justify-content:space-between;align-items:center;max-width:520px;margin:0 0 .75rem}.badges{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}.badges span{font-size:.78rem;background:#f1e6d6;border-radius:999px;padding:.2rem .6rem}.wizard .big,.wizard .secondary:not(.small){width:100%}label.check{display:flex;align-items:center;gap:.75rem}label.check input{width:1.6rem;height:1.6rem;flex:none}.tablewrap{overflow-x:auto;max-width:1100px;background:#fff;border:1px solid #ddd0bf;border-radius:14px}.pricetable{border-collapse:collapse;width:100%;font-size:.92rem;white-space:nowrap}.pricetable th,.pricetable td{padding:.7rem .75rem;text-align:right;border-bottom:1px solid #eee3d3}.pricetable th:first-child,.pricetable td:first-child{text-align:left;position:sticky;left:0;background:#fff}.pricetable th:last-child,.pricetable td:last-child{position:sticky;right:0;background:#fff;box-shadow:-6px 0 6px -6px #0000002e}.pricetable th{font-size:.8rem;color:#6b5a48}.pricetable th small,.pricetable td small{display:block;font-weight:400;font-size:.72rem;color:#7a6b5a}.pricetable tr:last-child td{border-bottom:0}.block .toggle{max-width:520px;margin-bottom:.75rem}.block .toggle button{min-width:0;padding:1rem .25rem}.periodbar{max-width:900px}.stat.hero{grid-column:1 / -1;border:2px solid var(--brown)}.stat.hero .money.single strong{font-size:2.6rem}.bigfig{font-size:1.8rem;margin:.25rem 0}.filter{max-width:520px;margin-bottom:1rem}.stat.hero.status.due{border-color:#b3261e}.stat.hero.status.over{border-color:#2e7d32}.stat.hero.status .money.single strong{font-size:1.9rem}.linerow{max-width:520px}.toggle.tabs,.quick{max-width:520px;margin-bottom:1rem}.rowbtns{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.card.due-soon,.linerow.due-soon{background:#fff3cd;border-color:#e6c65c;border-left-width:6px}.card.due-late,.linerow.due-late{background:#fdecea;border-color:#e3827b;border-left-width:6px;color:#8c1d18}.card[class*=due-] .big{margin-top:.75rem}.reminder-banner{max-width:900px;margin-bottom:1rem;font-weight:700}.toggle.tabs button{font-size:.85rem;padding:.8rem .3rem}.card.sent{background:#f3efe7}.card label.check{margin-top:.75rem}.netrows{grid-column:1 / -1}.netrows .row.net{font-weight:800;font-size:1.1rem;border-top:1px solid #eee3d3;margin-top:.25rem;padding-top:.5rem}.netrows .row.net small{display:block;font-weight:400;font-size:.75rem;color:#6b5a48}.block{margin-bottom:2rem}.block h2{margin-top:0}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.75rem;max-width:900px}.stat{background:#fff;border:1px solid #ddd0bf;border-radius:14px;padding:1rem}.stat h3{margin:0 0 .6rem;font-size:1rem;color:#6b5a48}.stat h3 small{font-weight:400;margin-left:.4rem}.pair{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.money{display:grid;gap:.15rem}.money span{font-size:.8rem;color:#6b5a48}.money strong{font-size:1.35rem;line-height:1.2;word-break:break-word}.money.single strong{font-size:1.8rem}.stockrow{display:flex;justify-content:space-between;gap:1rem;align-items:center;max-width:900px;background:#fff;border:1px solid #ddd0bf;border-radius:12px;padding:.85rem 1rem;margin-bottom:.5rem}.stockrow small{color:#7a6b5a}.stockqty{text-align:right;display:grid;gap:.15rem}.stockqty span{font-weight:800;font-size:1.05rem}.stockrow.low{background:#fdecea;border-color:#e3827b;border-left-width:6px;color:#8c1d18}.stockrow.low small{color:#8c1d18}.stockqty em{font-style:normal;font-weight:700;font-size:.82rem}.shell{min-height:100vh}.content{min-width:0;overflow-wrap:anywhere;padding:calc(1.25rem + env(safe-area-inset-top)) calc(1.25rem + env(safe-area-inset-right)) calc(7rem + env(safe-area-inset-bottom)) calc(1.25rem + env(safe-area-inset-left))}.login{padding-top:calc(3rem + env(safe-area-inset-top))}.soon{font-size:1.3rem;color:#7a6b5a}button,select,input:not([type=checkbox]):not([type=radio]){min-height:48px}button.small{min-height:48px;padding:.5rem .9rem}button.link{min-height:48px;min-width:48px;display:inline-flex;align-items:center;justify-content:center}.chips button{min-height:48px}label.check{min-height:48px;display:flex;align-items:center;gap:.75rem}input[type=checkbox]{width:1.75rem;height:1.75rem;flex:none}.history summary{min-height:48px;display:flex;align-items:center}.nav-side{display:none}.nav-bottom{position:fixed;bottom:0;left:0;right:0;z-index:20;display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border-top:1px solid #ddd0bf;padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.nav-bottom button{font:inherit;font-size:.8rem;font-weight:600;line-height:1.15;min-height:64px;min-width:0;padding:.5rem .15rem;border:0;background:none;color:#6b5a48}.nav-bottom button.active{color:var(--brown);font-weight:800;background:#f6ecdd;box-shadow:inset 0 4px 0 var(--brown)}.more{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;overflow-y:auto;background:var(--bg);padding:calc(1.25rem + env(safe-area-inset-top)) calc(1.25rem + env(safe-area-inset-right)) calc(6rem + env(safe-area-inset-bottom)) calc(1.25rem + env(safe-area-inset-left))}.more-row{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:60px;font:inherit;font-size:1.15rem;font-weight:700;text-align:left;color:var(--ink);background:#fff;border:1px solid #ddd0bf;border-radius:14px;padding:.8rem 1rem;margin-bottom:.6rem}.more-row span{color:#9a8a76;font-size:1.5rem}.more-row.active{background:var(--brown);border-color:var(--brown);color:#fff}.more-row.active span{color:#fff}.more-row.logout{color:#b3261e;border-color:#e3b5b1;margin-top:1rem}@media (min-width: 768px){.nav-bottom,.more{display:none}.shell{display:grid;grid-template-columns:240px 1fr}.nav-side{display:flex;flex-direction:column;gap:1rem;position:sticky;top:0;height:100vh;overflow-y:auto;border-right:1px solid #ddd0bf;padding:1.25rem .75rem}.nav-side .brand{font-size:1.5rem;font-weight:800;color:var(--brown);padding:0 .75rem .25rem}.nav-group{display:flex;flex-direction:column;gap:.15rem}.nav-title{font-size:.75rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#8a7a66;padding:0 1rem .25rem}.nav-side button{font:inherit;font-size:1rem;text-align:left;min-height:48px;padding:.6rem 1rem;border:0;border-radius:10px;background:none;color:var(--ink)}.nav-side button.active{background:#f1e6d6;color:var(--brown);font-weight:800}.nav-side button.logout{color:#b3261e}.content{padding:2rem}}
