:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans JP,sans-serif;color:#2d2926;background:#f8f5ef;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f8f5ef}button,input,textarea{font:inherit}button{cursor:pointer}.app-shell{width:min(100%,720px);margin:0 auto;padding:calc(18px + env(safe-area-inset-top)) 14px calc(108px + env(safe-area-inset-bottom))}.app-header{text-align:center;margin-bottom:14px}.app-header h1{margin:0 0 12px;font-size:28px;letter-spacing:-.03em}.date-nav{position:relative;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px}.date-nav>button{border:0;background:transparent;min-height:44px;font-size:30px;color:#2d2926}.date-nav-center{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0}.date-button{min-height:44px;padding:0 2px;border:0;background:transparent;color:#2d2926;font-size:18px;font-weight:700;white-space:nowrap}.today-button{min-height:32px;padding:4px 10px;border:1px solid #dfd5cc;border-radius:999px;background:#fff;color:#6b625c;font-size:12px;font-weight:700;white-space:nowrap}.save-state{margin:4px 0 0;min-height:18px;font-size:12px;color:#7b746e}.calendar-popover{position:absolute;z-index:20;top:calc(100% + 8px);left:50%;transform:translate(-50%);width:min(330px,calc(100vw - 28px));padding:12px;border:1px solid #e3dad1;border-radius:16px;background:#fffdfa;box-shadow:0 12px 32px #372b2329}.calendar-header{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:6px;margin-bottom:6px}.calendar-header button{min-width:44px;min-height:44px;border:0;background:transparent;color:#4b4540;font-size:28px}.calendar-header strong{font-size:16px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-weekdays{margin-bottom:2px;color:#8a817a;font-size:11px}.calendar-weekdays span{display:grid;place-items:center;min-height:24px}.calendar-grid{gap:2px}.calendar-empty{min-height:42px}.calendar-day{position:relative;min-width:0;min-height:42px;padding:5px 2px 9px;border:0;border-radius:10px;background:transparent;color:#4b4540;font-size:14px}.calendar-day.today{box-shadow:inset 0 0 0 1px #d9cfc6}.calendar-day.selected{background:#f4e7e3;color:#9f3d3d;font-weight:700}.calendar-marker{position:absolute;left:50%;bottom:5px;width:4px;height:4px;transform:translate(-50%);border-radius:50%;background:#d94a4a}.meal-list{display:grid;gap:10px}.meal-section{background:#fffdfa;border:1px solid #ebe4dc;border-radius:16px;padding:11px 12px;box-shadow:0 1px 4px #3c2d230a}.meal-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px}.meal-row h2{margin:0;font-size:18px;color:#d94a4a}.meal-actions{display:flex;gap:6px}.action-button,.icon-button{border:1px solid #e6ddd4;background:#fff;border-radius:10px;min-height:36px;padding:7px 10px;color:#4b4540}.action-button input{display:none}.meal-content{margin-top:8px;display:grid;gap:8px}.photo-strip{display:flex;align-items:flex-start;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.photo-item{flex:0 0 112px;margin:0;position:relative;display:grid;align-content:start;user-select:none;-webkit-user-select:none;transition:opacity .12s ease,transform .12s ease}.photo-item.dragging{opacity:.72;transform:scale(1.03);z-index:2}.photo-preview-wrap{width:112px;overflow:visible;display:flex;align-items:center;justify-content:center;position:relative;background:transparent}.photo-clip{flex:0 0 auto;position:relative;overflow:hidden;border-radius:12px}.photo-preview{position:absolute;left:50%;top:50%;display:block;object-fit:contain;transform-origin:center;transition:transform .12s ease;image-orientation:from-image}.photo-preview-placeholder{width:100%;height:100%;display:grid;place-items:center;border-radius:12px;background:#f4f0eb;color:#8a817a;font-size:11px;text-align:center;padding:8px}.drag-handle{position:absolute;right:4px;top:4px;width:32px;height:32px;padding:0;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:#776d65;font-size:16px;font-weight:700;letter-spacing:-3px;touch-action:none;cursor:grab;appearance:none;-webkit-appearance:none;-webkit-tap-highlight-color:transparent}.drag-handle:active{cursor:grabbing}.drag-handle:focus{outline:none}.drag-handle:focus-visible{outline:2px solid rgba(217,74,74,.45);outline-offset:2px}.photo-item figcaption{display:flex;gap:5px;margin-top:5px}.icon-button{flex:1;min-height:32px;padding:4px 6px;font-size:12px;touch-action:manipulation}.icon-button.danger{color:#a94646}textarea{width:100%;resize:none;border:1px solid #ded5cc;border-radius:12px;padding:8px 11px;background:#fff;color:#2d2926;line-height:24px}.memo-input{min-height:42px;max-height:114px;overflow-y:hidden}textarea:focus{outline:2px solid rgba(217,74,74,.18);border-color:#d94a4a}.preview-inline-error{margin:12px 2px 0;color:#a94646;font-size:13px}.bottom-actions{position:fixed;left:0;right:0;bottom:0;z-index:5;display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,1.2fr);gap:10px;padding:10px max(14px,calc((100vw - 720px)/2 + 14px)) calc(10px + env(safe-area-inset-bottom));background:#f8f5eff0;border-top:1px solid rgba(220,210,200,.7);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.delete-button,.preview-button{min-height:48px;border-radius:14px;font-weight:700}.delete-button{border:1px solid #dfd5cc;background:#fff;color:#6b625c;font-size:13px}.delete-button:disabled{opacity:.42;cursor:default}.preview-button{border:0;background:#d94a4a;color:#fff;font-size:16px}.preview-button:disabled{opacity:.42;cursor:default}.preview-shell{width:min(100%,760px);margin:0 auto;padding:calc(18px + env(safe-area-inset-top)) 14px calc(24px + env(safe-area-inset-bottom))}.preview-header{text-align:center;margin-bottom:14px}.preview-header h1{margin:0;font-size:24px}.preview-header p{margin:5px 0 0;color:#746c66;font-size:14px}.preview-frame{width:100%;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 3px 16px #32282217}.preview-frame img{display:block;width:100%;height:auto;aspect-ratio:1 / 1;object-fit:contain;background:#fff}.preview-errors{margin-top:12px;padding:12px 14px;border:1px solid #e5caca;border-radius:12px;background:#fff8f7;color:#8d3f3f;font-size:13px}.preview-errors strong{display:block;margin-bottom:5px}.preview-errors ul{margin:0;padding-left:18px}.export-status{margin:12px 2px 0;color:#5f7561;font-size:13px;font-weight:700;text-align:center}.export-error{margin:8px 2px 0;color:#a94646;font-size:13px;text-align:center}.preview-actions{display:grid;grid-template-columns:1.2fr 1fr;gap:10px;margin-top:14px}.preview-export-button,.back-button{min-height:48px;border-radius:14px;font-weight:700}.preview-export-button{border:0;background:#d94a4a;color:#fff}.preview-export-button:disabled{opacity:.52;cursor:default}.back-button{margin:0;border:1px solid #dfd5cc;background:#fff;color:#6b625c}.after-export{margin-top:14px;padding:13px;border:1px solid #e4dcd4;border-radius:14px;background:#fffdfa}.after-export p{margin:0 0 9px;text-align:center;color:#6b625c;font-size:13px}.after-export-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.after-export-actions button{min-height:44px;border:1px solid #e1d7ce;border-radius:12px;background:#fff;color:#4b4540;font-weight:700}@media(min-width:640px){.app-shell{padding-left:22px;padding-right:22px}.meal-section{padding:13px 15px}.photo-item{flex-basis:132px}.photo-preview-wrap{width:132px}.preview-shell{padding-left:22px;padding-right:22px}}
