:root{font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#262824;background:#f5f4ef;font-synthesis:none;--ink:#262824;--muted:#777a72;--line:#e5e3da;--paper:#fffefa;--accent:#e25f3f;--green:#3f7259}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top,#fffdf5 0,#f5f4ef 42rem)}button,input{font:inherit}button{color:inherit}.app-shell{min-height:100vh;padding-bottom:calc(82px + env(safe-area-inset-bottom))}.page{width:min(720px,100%);margin:auto;padding:max(24px,env(safe-area-inset-top)) 20px 30px}.page-header{height:52px;display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.page-header h1{font-size:28px;letter-spacing:-.04em;margin:0}.icon-button{border:0;background:#ebe9df;border-radius:50%;width:42px;height:42px;display:grid;place-items:center}.date-picker-button{position:relative;border:0;background:#ebe9df;border-radius:50%;width:42px;height:42px;display:grid;place-items:center;overflow:hidden}.date-picker-button input{position:absolute;inset:0;opacity:0;width:100%;height:100%}.text-button{border:0;background:transparent;color:var(--muted);padding:8px}.date-line{color:var(--muted);margin:0 0 18px}.balance-card{background:var(--ink);color:#fff;border-radius:26px;padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:22px;box-shadow:0 16px 40px #2e302729}.balance-card div{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:4px 7px}.balance-card span{grid-column:1/-1;color:#c5c6be;font-size:13px}.balance-card strong{font-size:30px;letter-spacing:-.04em}.balance-card small{color:#aeb0a8}.balance-card .net{grid-column:1/-1;border-top:1px solid #4b4d47;padding-top:18px}.balance-card .net strong{color:#f4ad65}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0 30px}.quick-actions button{border:1px solid var(--line);background:var(--paper);padding:14px 12px;border-radius:18px;display:flex;align-items:center;gap:10px;text-align:left}.quick-actions button>span:nth-child(2){display:flex;flex-direction:column;flex:1}.quick-actions small{color:var(--muted);margin-top:3px}.quick-actions button>svg{width:16px;color:#aaa}.quick-icon{width:39px;height:39px;border-radius:13px;display:grid;place-items:center}.quick-icon svg{width:20px}.quick-icon.intake{background:#f7e2d8;color:#a8442d}.quick-icon.burn{background:#dfece5;color:#32624a}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px}.section-heading h2{font-size:19px;margin:0}.section-heading button{border:0;background:transparent;color:var(--muted);display:flex;align-items:center}.empty-state{min-height:190px;border:1px dashed #d7d4c9;border-radius:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#989a93;text-align:center;padding:25px}.empty-state svg{margin-bottom:12px}.empty-state strong{color:#676a63}.empty-state p{margin:7px 0 0;font-size:14px}.record-row,.template-row{background:var(--paper);border-bottom:1px solid var(--line);padding:15px;display:flex;align-items:center;gap:12px}.record-row:first-child,.template-row:first-of-type{border-radius:18px 18px 0 0}.record-row:last-child,.template-row:last-of-type{border-radius:0 0 18px 18px;border-bottom:0}.record-row div,.template-row div{display:flex;flex-direction:column;flex:1}.record-row small,.template-row small{color:var(--muted);margin-top:3px}.record-row b{font-variant-numeric:tabular-nums}.row-delete{border:0;background:transparent;color:#bbb;padding:5px;display:grid;place-items:center}.row-delete svg{width:17px}.record-dot{width:9px;height:9px;border-radius:50%;background:var(--accent)}.record-dot.expenditure{background:var(--green)}.bottom-nav{position:fixed;z-index:10;left:50%;bottom:0;transform:translate(-50%);width:min(720px,100%);height:calc(70px + env(safe-area-inset-bottom));padding:8px 14px env(safe-area-inset-bottom);background:#fffefaf2;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid #e2e0d6;display:grid;grid-template-columns:repeat(4,1fr)}.bottom-nav a{text-decoration:none;color:#96988f;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11px}.bottom-nav svg{width:21px}.bottom-nav a.active{color:var(--ink);font-weight:700}.segmented{background:#e9e7df;padding:4px;display:grid;grid-template-columns:1fr 1fr;border-radius:14px;margin:10px 0 14px}.segmented button{border:0;background:transparent;padding:10px;border-radius:11px}.segmented .active{background:var(--paper);box-shadow:0 2px 8px #2f302414;font-weight:700}.search-field{display:flex;align-items:center;gap:8px;background:var(--paper);border:1px solid var(--line);padding:0 14px;border-radius:15px;margin-bottom:18px;color:#999}.search-field input{border:0;outline:0;background:transparent;width:100%;padding:13px 0}.template-row{width:100%;text-align:left;border:1px solid var(--line);margin-bottom:9px;border-radius:16px!important}.template-row>svg:first-child{color:#c7c5bb;width:19px}.template-row>svg.starred{color:#e7a73d;fill:#e7a73d}.chart-card{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:14px 10px 8px;margin-top:18px}.chart-note{color:var(--muted);font-size:13px;line-height:1.6}.floating-button{position:fixed;right:max(22px,calc((100vw - 680px)/2));bottom:calc(88px + env(safe-area-inset-bottom));border:0;border-radius:999px;padding:14px 18px;background:var(--ink);color:#fff;display:flex;align-items:center;gap:8px;box-shadow:0 12px 28px #25261f42}.floating-button svg{width:19px}.view-toggle{display:flex;gap:7px;margin-bottom:17px}.view-toggle button{border:0;background:transparent;color:var(--muted);padding:8px 12px;border-radius:12px;display:flex;align-items:center;gap:6px}.view-toggle svg{width:18px}.view-toggle .active{color:var(--ink);background:#e8e5da;font-weight:700}.room-card{background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:20px}.room-title{display:flex;justify-content:space-between;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:10px;color:#999b92;margin:0 0 4px}.room-title h2{margin:0;font-size:23px}.furniture-empty{min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-top:1px solid var(--line);margin-top:18px;padding:25px}.furniture-empty p{color:var(--muted);line-height:1.6;max-width:330px}.secondary-button{border:1px solid #cbc9bf;background:transparent;border-radius:13px;padding:10px 14px;display:flex;gap:6px;align-items:center}.secondary-button svg{width:18px}.room-list{margin-top:18px;border-top:1px solid var(--line)}.room-list article{display:flex;align-items:center;gap:12px;padding:15px 2px;border-bottom:1px solid var(--line)}.room-list article:last-child{border-bottom:0}.room-list article>div:nth-child(2){flex:1;display:flex;flex-direction:column}.room-list small{color:var(--muted);margin-top:4px}.room-list article>svg{width:18px;color:#aaa}.room-symbol{width:42px;height:42px;background:#ebe8de;border-radius:14px;display:grid;place-items:center}.room-symbol svg{width:20px}.room-order{width:34px;display:flex;flex-direction:column;gap:3px}.room-order button{border:0;background:#ece9df;border-radius:7px;height:24px;display:grid;place-items:center}.room-order button:disabled{opacity:.25}.room-order svg{width:14px}.furniture-link{border:0;background:#f1efe7;border-radius:10px;padding:8px 10px;margin-top:8px;display:flex;align-items:center;justify-content:space-between;text-align:left}.furniture-link svg{width:15px}.furniture-line{display:grid;grid-template-columns:1fr auto;gap:4px;align-items:center}.furniture-line .furniture-link{width:100%}.item-list{display:flex;flex-direction:column;gap:9px}.item-list>button{width:100%;text-align:left;display:flex;align-items:center;gap:12px;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:12px}.item-list>button>div:nth-child(2){flex:1;display:flex;flex-direction:column;gap:4px}.item-list small{color:var(--muted)}.item-list>button>svg{width:17px;color:#aaa}.item-thumb{width:44px;height:44px;border-radius:12px;background:#e9e6db;display:grid;place-items:center;overflow:hidden;font-weight:800}.item-thumb img{width:100%;height:100%;object-fit:cover}.furniture-viewport{width:100%;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:20px;background:#eceae2;padding:18px;touch-action:pan-x pan-y pinch-zoom}.furniture-canvas{position:relative;min-width:720px;background:#faf9f5;border:2px solid #5e6059}.furniture-cell{position:absolute;border:1px solid #777970;background:#f3f1e9;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px;overflow:hidden}.furniture-cell:active{background:#e7e1d2}.furniture-cell small{color:var(--muted);margin-top:4px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:15px}.cell-actions button{border:1px solid var(--line);background:#f3f1e9;border-radius:12px;padding:10px;display:flex;justify-content:center;align-items:center;gap:5px}.cell-actions svg{width:17px}.inline-form{display:flex;gap:8px;margin-bottom:15px}.inline-form input{flex:1;border:1px solid var(--line);border-radius:10px;padding:10px}.inline-form button{border:0;border-radius:10px;background:var(--ink);color:#fff;padding:0 15px}.cell-item-list article{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.cell-item-list article>img{width:44px;height:44px;object-fit:cover;border-radius:12px}.cell-item-list article>div:nth-child(2){flex:1;display:flex;flex-direction:column}.cell-item-list small{color:var(--muted);margin-top:3px}.dialog-buttons{display:grid;grid-template-columns:1fr 2fr;gap:10px}.dialog-buttons .primary-button{margin:0}.furniture-cell.highlighted{z-index:2;outline:4px solid #e25f3f;outline-offset:-4px;background:#fff0e7}.profile-card{display:flex;align-items:center;gap:14px;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:18px;margin:16px 0 24px}.avatar{width:48px;height:48px;border-radius:16px;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:800;font-size:21px}.profile-card>div:last-child{display:flex;flex-direction:column}.profile-card small{color:var(--muted);margin-top:4px}.settings-list{overflow:hidden;border:1px solid var(--line);border-radius:19px;background:var(--paper)}.settings-list button{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:16px;display:flex;gap:12px;align-items:center;text-align:left}.settings-list button:last-child{border:0}.settings-list button span{flex:1}.settings-list svg{width:20px}.settings-list .danger{color:#b44736}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#f7f3e8,#eeeee7)}.login-card{width:min(400px,100%);background:#fffefb;border:1px solid #e6e2d7;border-radius:30px;padding:34px;box-shadow:0 24px 70px #35392b17}.brand-mark{width:62px;height:62px;border-radius:20px;background:var(--ink);color:#f8b467;display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:28px}.brand-mark svg:last-child{margin-left:-8px;margin-bottom:-15px}.login-card h1{font-size:34px;margin:0 0 9px;letter-spacing:-.05em}.muted{color:var(--muted);line-height:1.6}.login-card form{display:flex;flex-direction:column;gap:15px;margin-top:27px}.login-card label{font-size:13px;font-weight:700}.login-card input{width:100%;margin-top:7px;border:1px solid #d8d5ca;border-radius:13px;padding:13px;outline:0;background:#fbfaf6}.login-card input:focus{border-color:#777970;box-shadow:0 0 0 3px #7679701c}.primary-button{border:0;border-radius:14px;padding:14px;background:var(--ink);color:#fff;font-weight:700;margin-top:4px}.primary-button:disabled{opacity:.6}.form-error{color:#b44736;font-size:13px;margin:0}.splash{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.splash .brand-mark{margin:0}.splash strong{letter-spacing:.08em}.modal-backdrop{position:fixed;z-index:30;inset:0;background:#20221d80;display:flex;align-items:flex-end;justify-content:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-sheet{width:min(620px,100%);max-height:92vh;overflow:auto;background:#fffefb;border-radius:26px 26px 0 0;padding:20px 20px calc(22px + env(safe-area-inset-bottom));box-shadow:0 -20px 55px #1115;animation:sheet-in .18s ease-out}.modal-sheet>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.modal-sheet h2{margin:0;font-size:23px}.entry-form{display:flex;flex-direction:column;gap:14px}.entry-form label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700}.entry-form input,.entry-form select,.entry-form textarea{width:100%;border:1px solid #d8d5ca;border-radius:12px;background:#fbfaf6;padding:12px;outline:0}.entry-form textarea{resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.entry-form .check-label{flex-direction:row;align-items:center;font-weight:500}.check-label input{width:auto}.calorie-preview{background:#eeece4;border-radius:15px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center}.calorie-preview span{color:var(--muted)}.calorie-preview strong{font-size:19px}.danger-button{border:1px solid #e0b7ae;border-radius:14px;padding:12px;background:#fff6f4;color:#a33e2e}@keyframes sheet-in{0%{transform:translateY(30px);opacity:.6}}@media(min-width:760px){.page{padding-top:36px}.bottom-nav{border:1px solid #dedcd2;border-bottom:0;border-radius:22px 22px 0 0}.balance-card{grid-template-columns:1fr 1fr 1fr}.balance-card .net{grid-column:auto;border-top:0;border-left:1px solid #4b4d47;padding:0 0 0 20px}}
