.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.login-container{background:#fff;padding:40px;border-radius:12px;box-shadow:0 2px 10px #0000001a;width:100%;max-width:400px}.login-container h1{margin:0 0 30px;text-align:center;color:#333}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#666;font-weight:500}.form-group input{width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;font-size:16px;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#c17644}button[type=submit]{width:100%;padding:12px;background:#c17644;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer}.error{color:#ff6b6b;margin-top:10px;text-align:center}.container{max-width:800px;margin:0 auto;padding:20px;padding-bottom:env(safe-area-inset-bottom)}.header{margin-bottom:20px}.date-nav{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;margin:0 -20px;padding:0 20px}.date-nav::-webkit-scrollbar{display:none}.date-strip{display:flex;align-items:center;gap:2px;min-width:max-content;padding:10px 0}.date-item{display:flex;flex-direction:column;align-items:center;padding:12px 8px;min-width:60px;border-radius:12px;cursor:pointer;transition:all .2s ease;color:#333;background:transparent;border:none;font-family:inherit}@media (hover: hover){.date-item:hover:not(.disabled){background:#f0f0f0}}.date-item.current{background:#c17644;color:#fff;font-weight:600}.date-item.disabled{color:#ccc;cursor:not-allowed}.date-day{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.date-number{font-size:18px;font-weight:600}.section{background:#fff;border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 2px 10px #0000001a;transition:opacity .3s ease}.section.loading{opacity:.5}.loading-overlay{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;display:flex;align-items:center;justify-content:center}.loading-spinner{width:40px;height:40px;border:3px solid #f0f0f0;border-top:3px solid #c17644;border-radius:50%;animation:spin .8s linear infinite}.section-title{font-size:18px;font-weight:600;margin-bottom:15px;color:#333}.macro-row{margin-bottom:12px}.macro-label{display:flex;justify-content:space-between;margin-bottom:4px;font-size:14px;font-weight:500}.macro-label .label{font-weight:600;min-width:50px}.progress-bar{height:8px;background:#e9ecef;border-radius:4px;overflow:hidden}.progress-fill{height:100%;transition:width .3s ease}.meals-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:8px 0;border-radius:8px;transition:background-color .2s ease}@media (hover: hover){.meals-header:hover{background-color:#f8f9fa}}.meals-caret{color:#666;transition:transform .3s ease;padding:4px 8px;display:flex;align-items:center;justify-content:center}.meals-caret.expanded{transform:rotate(90deg)}.meals-caret svg{display:block}.meals-content{overflow:hidden;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:1000px}}.meal{border-bottom:1px solid #e9ecef;padding:15px 0;cursor:pointer;transition:background-color .2s ease}@media (hover: hover){.meal:hover{background-color:#f9f9f9}}.meal:last-child{border-bottom:none}.meal-header{display:flex;align-items:center;margin-bottom:6px;gap:8px}.meal-time{color:#666;font-size:14px;font-weight:700;min-width:45px}.meal-separator{color:#ccc;font-weight:400}.meal-name{font-weight:600;font-size:16px;flex:1;color:#333}.meal-macros{color:#666;font-size:14px;margin-bottom:0}.meal-ingredients{color:#888;font-size:13px;font-style:italic;margin-top:8px;padding-top:8px;border-top:1px solid #f0f0f0;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.empty-state{color:#666;text-align:center;padding:20px}.soft-requirements{display:flex;flex-direction:column;gap:8px}.soft-requirement{display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:8px;background:#f8f9fa;transition:all .2s ease}.soft-requirement.met{background:#d4edda;border-left:3px solid #28a745}.soft-requirement.unmet{background:#fff3cd;border-left:3px solid #ffc107}.soft-requirement.overridden{opacity:.9}.soft-req-checkbox{cursor:pointer;flex-shrink:0}.checkbox{width:22px;height:22px;border:2px solid #ccc;border-radius:4px;display:flex;align-items:center;justify-content:center;background:#fff;transition:all .2s ease}.checkbox.checked{background:#28a745;border-color:#28a745;color:#fff}.checkbox svg{width:14px;height:14px}.soft-spinner{width:22px;height:22px;border:2px solid #f0f0f0;border-top:2px solid #c17644;border-radius:50%;animation:spin .8s linear infinite}.soft-req-content{flex:1;min-width:0}.soft-req-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.soft-req-emoji{font-size:16px}.soft-req-label{font-weight:600;font-size:14px;color:#333}.soft-req-input-row{display:flex;align-items:center;gap:6px;margin-top:4px}.soft-req-input{width:70px;padding:4px 8px;border:1px solid #ddd;border-radius:4px;font-size:14px;text-align:right}.soft-req-input:focus{outline:none;border-color:#c17644}.soft-req-target{font-size:13px;color:#666}.soft-req-computed{font-size:13px;color:#666;margin-top:2px}.footer{text-align:center;color:#666;font-size:12px;margin-top:20px;padding-bottom:20px}.link-btn{background:none;border:none;color:#007bff;text-decoration:underline;cursor:pointer;font:inherit;padding:0;margin-left:4px}@media (max-width: 600px){.container{padding:10px}.header,.section{padding:15px}.current-date{font-size:18px}.meal-header{gap:6px}.meal-time{min-width:40px;font-size:13px}.meal-name{font-size:15px}}@media (display-mode: standalone){.container{padding-top:calc(20px + env(safe-area-inset-top))}}.loading-spinner{display:inline-block;width:20px;height:20px;border:2px solid #f3f3f3;border-top:2px solid #c17644;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:#f8f9fa;color:#333;line-height:1.6}button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}input{font-size:16px!important}
