:root{color:#20201c;background:#f7f4ed;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{min-height:100%;background:#f7f4ed}body{min-height:100%;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{width:min(100%,720px);min-height:100vh;margin:0 auto;padding:18px}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0 18px}.eyebrow{margin:0 0 4px;color:#666257;font-size:.86rem;font-weight:700;letter-spacing:0;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:0;color:#1f4e5f;font-size:2.7rem;line-height:1;letter-spacing:0}h2{margin-bottom:0;font-size:1rem;letter-spacing:0}.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;min-height:44px;margin-bottom:14px;padding:4px;border:1px solid #ddd5c6;border-radius:8px;background:#eee7db}.tabs button{min-width:0;min-height:36px;border:0;border-radius:6px;background:transparent;color:#575143;font-weight:800}.tabs .active{background:#fff;color:#1f4e5f;box-shadow:0 1px #20201c14}.day-switcher{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:8px;align-items:end;margin-bottom:14px;padding:12px;border:1px solid #ded5c5;border-radius:8px;background:#fffdf8}.date-control input{min-height:38px;padding:7px 10px}.day-switcher .square-button{width:38px;height:38px}.day-switcher .icon-action{min-height:38px}.view-stack{display:grid;gap:14px}.total-block{padding:24px 0 18px;border-bottom:1px solid #ded5c5}.total-number{color:#1f4e5f;font-size:5.2rem;font-weight:900;line-height:.9;letter-spacing:0}.total-unit{margin-left:7px;color:#d45b3f;font-size:1.55rem;font-weight:900}.total-block p{margin:8px 0 0;color:#666257;font-weight:700}.target-copy{font-size:.92rem}.progress-track{width:100%;height:10px;margin-top:18px;overflow:hidden;border-radius:999px;background:#e3dacb}.progress-track span{display:block;height:100%;border-radius:inherit;background:#5f8d4e}.inline-form,.portion-form,.edit-form,.data-actions,.scan-confirm{display:grid;gap:12px;padding:14px;border:1px solid #ded5c5;border-radius:8px;background:#fffdf8}.inline-form{grid-template-columns:minmax(0,1.4fr) minmax(92px,.8fr) auto;align-items:end}label{display:grid;gap:6px;min-width:0}label span,.scan-code span{color:#666257;font-size:.76rem;font-weight:800;letter-spacing:0;text-transform:uppercase}input{width:100%;min-height:44px;border:1px solid #cfc5b3;border-radius:6px;background:#fff;color:#20201c;padding:10px 11px}select{width:100%;min-height:44px;border:1px solid #cfc5b3;border-radius:6px;background:#fff;color:#20201c;padding:10px 34px 10px 11px}input:focus,select:focus{border-color:#1f4e5f;outline:3px solid rgba(31,78,95,.16)}.icon-action,.quick-chip,.text-button,.square-button{border:1px solid #cfc5b3;background:#fff;color:#20201c}.icon-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border-radius:6px;padding:0 14px;font-weight:900;white-space:nowrap}.icon-action.primary{border-color:#1f4e5f;background:#1f4e5f;color:#fff}.icon-action:hover,.quick-chip:hover,.square-button:hover,.text-button:hover{transform:translateY(-1px)}.quick-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.portion-form{grid-template-columns:minmax(0,1.4fr) minmax(86px,.55fr) minmax(78px,.45fr) auto;align-items:end}.portion-preview{display:grid;gap:5px;min-height:44px;align-content:center;padding:0 10px;border:1px solid #ded5c5;border-radius:6px;background:#f7f4ed}.portion-preview span{color:#666257;font-size:.72rem;font-weight:800;letter-spacing:0;line-height:1;text-transform:uppercase}.portion-preview strong{color:#1f4e5f;line-height:1;white-space:nowrap}.scan-total{margin:0}.quick-chip{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;border-radius:8px;padding:8px 11px;text-align:left}.quick-chip span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-chip strong{color:#d45b3f}.section-title,.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-title span{color:#666257;font-weight:800}.list-section{display:grid;gap:10px}.item-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.list-item{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:62px;padding:11px 12px;border:1px solid #ded5c5;border-radius:8px;background:#fffdf8}.list-item>div:first-child{display:grid;min-width:0;gap:3px}.list-item strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-item span{color:#666257;font-size:.9rem}.row-actions{display:flex;flex:none;align-items:center;gap:7px}.row-actions b{color:#1f4e5f;white-space:nowrap}.square-button{display:inline-grid;width:38px;height:38px;place-items:center;border-radius:6px}.text-button{min-height:34px;border-radius:6px;padding:0 10px;font-weight:800}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:10px}.notice{margin-bottom:14px;border-radius:8px;padding:10px 12px;font-weight:800}.notice.success{border:1px solid #b7cda9;background:#eef7e8;color:#375f28}.notice.error{border:1px solid #e2b5aa;background:#fff1ed;color:#953a24}.empty{margin:0;padding:20px 12px;border:1px dashed #cfc5b3;border-radius:8px;color:#666257;text-align:center}.data-actions{grid-template-columns:1fr 1fr}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:end center;padding:14px;background:#20201c75}.scan-modal{display:grid;width:min(100%,520px);max-height:calc(100vh - 28px);gap:12px;overflow:auto;border-radius:8px;background:#f7f4ed;padding:14px;box-shadow:0 22px 60px #20201c4d}.scanner-video{width:100%;aspect-ratio:4 / 3;border:1px solid #ded5c5;border-radius:8px;background:#20201c;object-fit:cover}.scanner-status,.scan-note{margin:0;color:#666257;font-size:.92rem;font-weight:700}.barcode-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.scan-code{display:grid;gap:3px}.scan-code strong{overflow-wrap:anywhere}@media(max-width:560px){.app-shell{padding:14px}h1{font-size:2.35rem}.total-number{font-size:4.5rem}.inline-form,.portion-form,.data-actions,.barcode-form{grid-template-columns:1fr}.day-switcher{grid-template-columns:auto minmax(0,1fr) auto}.day-switcher .icon-action{grid-column:1 / -1}.quick-list,.two-column{grid-template-columns:1fr}.list-item{align-items:flex-start}.row-actions{align-self:center}}
