*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e;line-height:1.6}.container{max-width:1200px;margin:0 auto;padding:2rem}h1{text-align:center;margin-bottom:2rem;color:#16213e}h2{margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #0f4c75;color:#16213e}h3{margin:1rem 0 .5rem;color:#1a1a2e}.layout{display:flex;flex-direction:column;gap:2rem}.panel{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 4px 6px #0000000d}.search-box{position:relative;margin-bottom:1rem}.search-box input{width:100%;padding:.75rem 2.5rem .75rem 1rem;border:1px solid #ddd;border-radius:8px;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.search-box input:focus{outline:none;border-color:#3282b8;box-shadow:0 0 0 3px #3282b826}.search-box .clear-search{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);width:24px;height:24px;padding:0;background:#e9ecef;border:none;border-radius:50%;cursor:pointer;font-size:1rem;color:#666;display:flex;align-items:center;justify-content:center}.search-box .clear-search:hover{background:#dee2e6;color:#333}.search-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 12px #00000026;max-height:300px;overflow-y:auto;z-index:100;margin-top:4px}.search-item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.75rem 1rem;background:none;border:none;border-bottom:1px solid #eee;cursor:pointer;text-align:left;font-size:.9rem;transition:background .2s}.search-item:last-child{border-bottom:none}.search-item:hover:not(:disabled){background:#f0f7ff}.search-item:disabled{opacity:.5;cursor:not-allowed}.search-item .food-price{font-size:.8rem;color:#28a745}.category-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #eee}.category-tab{padding:.4rem .8rem;background:#f0f2f5;border:1px solid #ddd;border-radius:20px;font-size:.8rem;cursor:pointer;transition:all .2s;white-space:nowrap}.category-tab:hover{background:#e9ecef;border-color:#ccc}.category-tab.active{background:#3282b8;border-color:#3282b8;color:#fff}.select-actions{display:flex;gap:.5rem;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #eee}.select-actions button{padding:.5rem 1rem;background:#3282b8;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .2s}.select-actions button:hover{background:#0f4c75}.count{margin-left:auto;color:#666;font-size:.9rem}.food-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem;max-height:400px;overflow-y:auto;padding:.5rem}.food-list label{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#f8f9fa;border-radius:8px;cursor:pointer;transition:all .2s}.food-list label:hover{background:#e9ecef}.food-list label.selected{background:#d4edda;border:1px solid #28a745}.food-info{display:flex;flex-direction:column}.food-info .name{font-weight:500}.food-info .price{font-size:.8rem;color:#666}.optimize-btn{display:block;width:100%;margin-top:1.5rem;padding:1rem;background:linear-gradient(135deg,#0f4c75,#3282b8);color:#fff;border:none;border-radius:10px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.optimize-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #0f4c754d}.optimize-btn:disabled{background:#adb5bd;cursor:not-allowed}.result-panel .result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.result-panel .result-header h2{margin-bottom:0;border-bottom:none;padding-bottom:0}.export-buttons{display:flex;gap:.5rem}.btn-export{padding:.4rem .8rem;background:#6c757d;color:#fff;border:none;border-radius:6px;font-size:.8rem;cursor:pointer;transition:background .2s}.btn-export:hover{background:#5a6268}.result-summary{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:.75rem 1rem;background:#f8f9fa;border-radius:8px}.achievement-badge{padding:.3rem .75rem;background:#fff3cd;color:#856404;border-radius:20px;font-weight:600;font-size:.85rem}.achievement-badge.complete{background:#d4edda;color:#155724}.result-summary .message{font-size:.9rem;color:#555}.loading-spinner{display:flex;flex-direction:column;align-items:center;padding:3rem;color:#666}.spinner{width:40px;height:40px;border:4px solid #e9ecef;border-top-color:#3282b8;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.error-message{padding:1.5rem;background:#f8d7da;border-radius:8px;text-align:center}.error-message p{color:#721c24;margin-bottom:1rem}.btn-retry{padding:.5rem 1rem;background:#dc3545;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .2s}.btn-retry:hover{background:#c82333}.match-warning{padding:.5rem .75rem;background:#fff3cd;color:#856404;border-radius:6px;margin-bottom:1rem;font-size:.85rem}.no-results{text-align:center;padding:2rem;color:#888;font-style:italic}.amounts ul{list-style:none}.amounts li{display:flex;justify-content:space-between;padding:.75rem;margin-bottom:.25rem;background:#f8f9fa;border-radius:6px}.amounts .name{font-weight:500}.amounts .value{color:#0f4c75;font-weight:600}.cost-summary{margin:1.5rem 0;padding:1rem;background:linear-gradient(135deg,#bbe1fa,#d4edda);border-radius:10px;text-align:center;font-size:1.1rem}.cost-summary strong{font-size:1.3rem;color:#16213e}.monthly{color:#666;font-size:.9rem}.nutrient-table{width:100%;border-collapse:collapse;margin-top:.5rem}.nutrient-table th,.nutrient-table td{padding:.75rem .5rem;text-align:left;border-bottom:1px solid #eee}.nutrient-table th{background:#f8f9fa;font-weight:600;font-size:.9rem}.nutrient-table td{font-size:.9rem}.progress-bar{display:inline-block;width:60px;height:8px;background:#e9ecef;border-radius:4px;overflow:hidden;margin-right:.5rem}.progress-fill{height:100%;background:#3282b8;transition:width .3s}.progress-fill.complete{background:#28a745}.status-ok{color:#28a745;font-weight:600}.status-ng{color:#dc3545;font-weight:600}.loading{text-align:center;padding:3rem;color:#666}.error{padding:1rem;background:#f8d7da;color:#721c24;border-radius:8px}.warning{padding:.75rem 1rem;background:#fff3cd;color:#856404;border:1px solid #ffc107;border-radius:8px;margin-bottom:1rem;font-size:.9rem}.placeholder{color:#666;text-align:center;padding:2rem}.nutrient-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-top:1rem}.nutrient-card{background:#fff;border-radius:10px;padding:1rem;box-shadow:0 2px 8px #00000014;border-left:4px solid #ccc;transition:transform .2s,box-shadow .2s}.nutrient-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.nutrient-card.achieved{border-left-color:#28a745;background:linear-gradient(135deg,#fff,#f0fff4)}.nutrient-card.not-achieved{border-left-color:#dc3545;background:linear-gradient(135deg,#fff,#fff5f5)}.nutrient-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.nutrient-name{font-weight:600;font-size:1rem;color:#16213e}.nutrient-status{padding:.2rem .6rem;border-radius:12px;font-size:.75rem;font-weight:600}.nutrient-status.ok{background:#d4edda;color:#155724}.nutrient-status.ng{background:#f8d7da;color:#721c24}.nutrient-values{display:flex;align-items:baseline;gap:.3rem;margin-bottom:.75rem;font-size:.9rem}.nutrient-values .actual{font-weight:600;color:#0f4c75}.nutrient-values .separator{color:#aaa}.nutrient-values .required{color:#666}.nutrient-values .ratio{margin-left:auto;font-weight:600;color:#333}.contribution-container{margin-top:.5rem}.contribution-bar-wrapper{position:relative}.contribution-bar{display:flex;height:20px;background:#e9ecef;border-radius:10px;overflow:hidden}.hundred-percent-marker{position:absolute;top:0;bottom:0;width:2px;background:#333;pointer-events:none}.hundred-percent-marker .marker-label{position:absolute;top:-18px;left:50%;transform:translate(-50%);font-size:10px;color:#333;white-space:nowrap;font-weight:700}.contribution-segment{position:relative;height:100%;transition:opacity .2s,transform .2s;cursor:pointer;min-width:2px}.contribution-segment:hover,.contribution-segment.hovered{opacity:.85;transform:scaleY(1.1);z-index:10}.contribution-segment.empty{background:#e9ecef;cursor:default}.contribution-segment.empty:hover{transform:none;opacity:1}.contribution-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#000000d9;color:#fff;padding:.5rem .75rem;border-radius:6px;font-size:.75rem;white-space:nowrap;z-index:100;pointer-events:none;margin-bottom:5px}.contribution-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#000000d9}.contribution-legend{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.legend-item{display:flex;align-items:center;gap:.25rem;font-size:.7rem;color:#666;padding:.2rem .4rem;border-radius:4px;transition:background .2s;cursor:pointer}.legend-item:hover,.legend-item.hovered{background:#f0f0f0}.legend-color{width:10px;height:10px;border-radius:2px;flex-shrink:0}.legend-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.food-list label.fixed{background:#fff3cd;border:1px solid #ffc107}.food-list label.fixed:hover{background:#ffe69c}.fix-btn{padding:.25rem .5rem;background:#6c757d;color:#fff;border:none;border-radius:4px;font-size:.7rem;cursor:pointer;margin-left:auto;transition:background .2s}.fix-btn:hover{background:#5a6268}.fixed-badge{display:flex;align-items:center;gap:.25rem;padding:.2rem .5rem;background:#ffc107;color:#856404;border-radius:4px;font-size:.75rem;font-weight:600;margin-left:auto;cursor:pointer}.fixed-badge:hover{background:#e0a800}.remove-fixed{background:none;border:none;color:#856404;font-size:.9rem;cursor:pointer;padding:0 .2rem;line-height:1}.remove-fixed:hover{color:#533f03}.fixed-input{display:flex;align-items:center;gap:.25rem;margin-left:auto}.fixed-input input{width:60px;padding:.25rem .4rem;border:1px solid #ffc107;border-radius:4px;font-size:.8rem;text-align:right}.fixed-input input:focus{outline:none;border-color:#e0a800;box-shadow:0 0 0 2px #ffc10740}.fixed-input button{padding:.25rem .5rem;background:#ffc107;color:#856404;border:none;border-radius:4px;font-size:.7rem;font-weight:600;cursor:pointer}.fixed-input button:hover{background:#e0a800}.food-amounts-table{width:100%;border-collapse:collapse;margin-top:.5rem;font-size:.9rem}.food-amounts-table th,.food-amounts-table td{padding:.6rem .5rem;text-align:left;border-bottom:1px solid #eee}.food-amounts-table th{background:#f8f9fa;font-weight:600;font-size:.85rem;color:#555}.food-amounts-table td.food-name{font-weight:500;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.food-amounts-table td.amount{font-weight:600;color:#0f4c75}.food-amounts-table td.cost{font-weight:600;color:#28a745}.food-amounts-table td.contribution{width:120px}.contrib-bar-wrapper{display:flex;align-items:center;gap:.5rem}.contrib-bar-wrapper .contrib-bar{height:8px;background:linear-gradient(90deg,#3498db,#2ecc71);border-radius:4px;min-width:2px;max-width:60px}.contrib-bar-wrapper span{font-size:.8rem;color:#666;white-space:nowrap}.food-amounts-table td.sources{font-size:.75rem}.food-amounts-table .source-price,.food-amounts-table .source-nutrition{display:block;color:#888;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100px;cursor:help}.food-amounts-table .source-price{color:#28a745}.food-amounts-table .source-nutrition{color:#3498db}.strategy-panel{margin-top:1rem}.strategy-options{display:flex;flex-direction:column;gap:.5rem}.strategy-option{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#f8f9fa;border-radius:8px;cursor:pointer;transition:all .2s}.strategy-option:hover{background:#e9ecef}.strategy-option.selected{background:#d4edda;border:1px solid #28a745}.strategy-option input[type=radio]{margin:0}.strategy-label{font-weight:500}.scoring-params{margin-top:1rem;padding:1rem;background:#fff3cd;border-radius:8px;border:1px solid #ffc107}.scoring-params h3{margin:0 0 .75rem;font-size:.95rem;color:#856404}.param-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem}.param-grid label{display:flex;flex-direction:column;gap:.25rem}.param-grid label span{font-size:.8rem;color:#666}.param-grid input{padding:.4rem .6rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.param-grid input:focus{outline:none;border-color:#ffc107;box-shadow:0 0 0 2px #ffc10740}.profile-panel{margin-top:1rem}.profile-description{font-size:.85rem;color:#666;margin-bottom:1rem}.profile-inputs{display:flex;flex-direction:column;gap:1rem}.profile-field{display:flex;flex-direction:column;gap:.5rem}.profile-field>label{font-weight:600;font-size:.9rem;color:#333}.age-input-group{display:flex;align-items:center;gap:.5rem}.age-input-group input{width:80px;padding:.5rem;border:1px solid #ddd;border-radius:6px;font-size:1rem;text-align:center}.age-input-group input:focus{outline:none;border-color:#0f4c75;box-shadow:0 0 0 2px #0f4c7533}.age-unit{font-size:.95rem;color:#555}.age-group-label{font-size:.8rem;color:#888}.age-options,.gender-options,.meal-type-options{display:flex;flex-wrap:wrap;gap:.75rem}.meal-type-option{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:#f8f9fa;border-radius:8px;cursor:pointer;transition:all .2s}.meal-type-option:hover{background:#e9ecef}.meal-type-option.selected{background:#fff3cd;border:1px solid #ffc107}.meal-type-option input[type=radio]{margin:0}.meal-type-option span{font-weight:500}.age-option{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:#f8f9fa;border-radius:8px;cursor:pointer;transition:all .2s}.age-option:hover{background:#e9ecef}.age-option.selected{background:#d4edda;border:1px solid #28a745}.age-option input[type=radio]{margin:0}.age-option span{font-weight:500}.gender-option{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:#f8f9fa;border-radius:8px;cursor:pointer;transition:all .2s}.gender-option:hover{background:#e9ecef}.gender-option.selected{background:#cce5ff;border:1px solid #0f4c75}.gender-option input[type=radio]{margin:0}.gender-option span{font-weight:500}.preset-selector{margin-bottom:1rem}.preset-selector .hint{font-size:.85rem;color:#666;margin-bottom:1rem}.preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.preset-btn{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.75rem 1rem;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:1px solid #dee2e6;border-radius:10px;cursor:pointer;transition:all .2s;text-align:left}.preset-btn:hover{background:linear-gradient(135deg,#e9ecef,#dee2e6);border-color:#0f4c75;transform:translateY(-2px);box-shadow:0 4px 8px #0f4c7526}.preset-btn:active{transform:translateY(0)}.preset-name{font-weight:600;font-size:.95rem;color:#16213e}.preset-desc{font-size:.75rem;color:#666;line-height:1.4}.recipe-selector{margin-bottom:1rem}.recipe-selector .hint{font-size:.85rem;color:#666;margin-bottom:1rem}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem;max-height:300px;overflow-y:auto}.recipe-btn{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem;background:linear-gradient(135deg,#e8f4fd,#d4edfa);border:1px solid #3282b8;border-radius:10px;cursor:pointer;transition:all .2s;text-align:center}.recipe-btn:hover{background:linear-gradient(135deg,#d4edfa,#bbe1fa);transform:translateY(-2px);box-shadow:0 4px 8px #3282b833}.recipe-name{font-weight:600;font-size:.9rem;color:#0f4c75}.recipe-servings{font-size:.75rem;color:#666}.recipe-detail{padding:1rem;background:#f8f9fa;border-radius:8px}.recipe-detail h3{margin:0 0 1rem;color:#0f4c75}.servings-control{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.servings-control label{display:flex;align-items:center;gap:.5rem;font-weight:500}.servings-control input{width:60px;padding:.4rem;border:1px solid #ddd;border-radius:4px;text-align:center;font-size:1rem}.servings-hint{font-size:.8rem;color:#888}.ingredient-list h4{margin-bottom:.5rem;font-size:.9rem}.ingredient-list ul{list-style:none;padding:0;margin:0}.ingredient-list li{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid #eee}.ingredient-list li.unmatched{opacity:.6}.ingredient-list .ing-name{font-weight:500;min-width:100px}.ingredient-list .ing-amount{color:#0f4c75;font-weight:600;min-width:60px}.ingredient-list .ing-matched{font-size:.8rem;color:#28a745}.ingredient-list .ing-unmatched{font-size:.8rem;color:#dc3545}.recipe-actions{display:flex;gap:.75rem;margin-top:1rem}.recipe-actions .btn-apply{padding:.6rem 1.5rem;background:#28a745;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:background .2s}.recipe-actions .btn-apply:hover{background:#218838}.recipe-actions .btn-cancel{padding:.6rem 1rem;background:#6c757d;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .2s}.recipe-actions .btn-cancel:hover{background:#5a6268}.dish-calculator{margin-bottom:1rem}.dish-calculator .hint{font-size:.85rem;color:#666;margin-bottom:.75rem}.btn-toggle{padding:.5rem 1rem;background:#6c757d;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background .2s}.btn-toggle:hover{background:#5a6268}.calculator-form{margin-top:1rem;padding:1rem;background:#f8f9fa;border-radius:8px}.ingredient-input{margin-bottom:1rem}.ingredient-input select{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:6px;font-size:.95rem}.calculator-form .ingredient-list{margin-bottom:1rem}.calculator-form .ingredient-list li{display:flex;align-items:center;gap:.5rem;padding:.4rem 0}.calculator-form .ingredient-list input{width:70px;padding:.3rem .5rem;border:1px solid #ddd;border-radius:4px;text-align:right}.btn-remove{width:24px;height:24px;padding:0;background:#dc3545;color:#fff;border:none;border-radius:50%;cursor:pointer;font-size:.8rem;line-height:1;transition:background .2s}.btn-remove:hover{background:#c82333}.servings-input{margin:1rem 0}.servings-input label{display:flex;align-items:center;gap:.5rem}.servings-input input{width:60px;padding:.4rem;border:1px solid #ddd;border-radius:4px;text-align:center}.calculator-actions{display:flex;gap:.5rem}.btn-calculate{padding:.5rem 1.5rem;background:#0f4c75;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:background .2s}.btn-calculate:hover:not(:disabled){background:#16213e}.btn-calculate:disabled{background:#adb5bd;cursor:not-allowed}.btn-clear{padding:.5rem 1rem;background:#6c757d;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .2s}.btn-clear:hover{background:#5a6268}.dish-result{margin-top:1rem;padding:1rem;background:#fff;border-radius:8px;border:1px solid #28a745}.dish-result h4{margin:0 0 .75rem;color:#155724}.dish-result .cost-info{display:flex;gap:1.5rem;margin-bottom:1rem;font-weight:600;color:#155724}.dish-result .nutrient-table{font-size:.85rem}.dish-result .nutrient-table th,.dish-result .nutrient-table td{padding:.4rem .5rem}.dish-error{margin-top:1rem;padding:.75rem;background:#f8d7da;color:#721c24;border-radius:6px}@media (min-width: 768px){.layout{flex-direction:row}.left{flex:1;max-width:500px}.right{flex:1}}.app-container{min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#e4e8f0)}.app-header{text-align:center;padding:2rem;background:linear-gradient(135deg,#16213e,#0f4c75);color:#fff}.app-header h1{margin:0;font-size:1.8rem;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.2)}.app-header .subtitle{margin:.5rem 0 0;font-size:1rem;opacity:.9}.tab-nav{display:flex;justify-content:center;gap:.5rem;padding:1rem;background:#fff;box-shadow:0 2px 8px #0000001a;flex-wrap:wrap}.tab-nav button{padding:.75rem 1.5rem;background:#f0f2f5;border:none;border-radius:8px;font-size:.95rem;font-weight:600;color:#555;cursor:pointer;transition:all .2s}.tab-nav button:hover{background:#e0e4e8}.tab-nav button.active{background:linear-gradient(135deg,#0f4c75,#3282b8);color:#fff;box-shadow:0 4px 12px #0f4c754d}.main-content{max-width:1000px;margin:0 auto;padding:2rem}.loading-state{text-align:center;padding:3rem;color:#666;font-size:1.1rem}.analysis-section{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 20px #00000014}.section-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.section-header h2{margin:0;font-size:1.4rem;color:#16213e;border-bottom:none;padding-bottom:0}.age-selector{display:flex;gap:.5rem}.age-selector button{padding:.5rem 1rem;background:#f0f2f5;border:none;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s}.age-selector button.active{background:#0f4c75;color:#fff}.key-finding{display:flex;align-items:flex-start;gap:1rem;padding:1.5rem;background:linear-gradient(135deg,#fff3cd,#ffe69c);border-radius:12px;margin-bottom:2rem}.finding-icon{width:40px;height:40px;background:#ffc107;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;flex-shrink:0}.finding-text{font-size:1rem;line-height:1.6;color:#856404}.nutrient-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.nutrient-grid .nutrient-card{padding:1rem;border-radius:10px;border-left:4px solid #ccc;background:#f8f9fa}.nutrient-grid .nutrient-card.severe{border-left-color:#dc3545;background:linear-gradient(135deg,#fff,#fff5f5)}.nutrient-grid .nutrient-card.warning{border-left-color:#ffc107;background:linear-gradient(135deg,#fff,#fffef0)}.nutrient-grid .nutrient-card.ok{border-left-color:#28a745;background:linear-gradient(135deg,#fff,#f0fff4)}.nutrient-grid .nutrient-name{font-weight:600;font-size:.95rem;margin-bottom:.5rem}.nutrient-grid .nutrient-values{font-size:.85rem;color:#666;margin-bottom:.75rem}.nutrient-grid .lunch-value{color:#0f4c75;font-weight:600}.nutrient-grid .separator{margin:0 .25rem;color:#aaa}.nutrient-grid .daily-value{color:#666}.ratio-bar-container{position:relative;height:8px;background:#e9ecef;border-radius:4px;overflow:visible}.ratio-bar{height:100%;border-radius:4px;transition:width .5s ease-out}.nutrient-grid .severe .ratio-bar{background:linear-gradient(90deg,#dc3545,#e57373)}.nutrient-grid .warning .ratio-bar{background:linear-gradient(90deg,#ffc107,#ffcd38)}.nutrient-grid .ok .ratio-bar{background:linear-gradient(90deg,#28a745,#5cb85c)}.expected-line{position:absolute;left:33.3%;top:-2px;bottom:-2px;width:2px;background:#333}.ratio-label{margin-top:.5rem;font-size:.85rem;font-weight:600}.ratio-label .gap{font-weight:400;font-size:.8rem}.ratio-label .gap.negative{color:#dc3545}.ratio-label .gap.positive{color:#28a745}.problem-explanation{padding:1.5rem;background:#f8f9fa;border-radius:10px}.problem-explanation h3{margin:0 0 1rem;color:#16213e}.problem-explanation ul{margin:0;padding-left:1.5rem}.problem-explanation li{margin-bottom:.75rem;line-height:1.6}.cost-comparison{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.cost-card{padding:1.5rem;border-radius:12px;background:#f8f9fa}.cost-card.elementary{border-left:4px solid #3282b8}.cost-card.junior-high{border-left:4px solid #0f4c75}.cost-card h3{margin:0 0 1rem;color:#16213e}.cost-timeline{display:flex;flex-direction:column;gap:.75rem}.cost-year{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem;background:#fff;border-radius:8px}.cost-year .year{font-weight:600;color:#0f4c75;min-width:60px}.cost-year .monthly{color:#333}.cost-year .per-meal{color:#28a745;font-weight:600}.cost-year .change{margin-left:auto;padding:.2rem .5rem;background:#fff3cd;color:#856404;border-radius:4px;font-size:.8rem;font-weight:600}.cost-insight{padding:1.5rem;background:linear-gradient(135deg,#e8f4fd,#d4edfa);border-radius:10px}.cost-insight h3{margin:0 0 .75rem}.price-summary{display:flex;justify-content:center;gap:2rem;margin-bottom:2rem}.price-change-card{padding:1.5rem 2.5rem;background:#f8f9fa;border-radius:12px;text-align:center}.price-change-card.highlight{background:linear-gradient(135deg,#fff3cd,#ffe69c)}.price-change-card .period{display:block;font-size:.9rem;color:#666;margin-bottom:.5rem}.price-change-card .change-value{font-size:2rem;font-weight:700;color:#dc3545}.category-changes{margin-bottom:2rem}.category-changes h3{margin-bottom:1rem}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem}.category-item{padding:.75rem 1rem;background:#f8f9fa;border-radius:8px;position:relative;overflow:hidden}.category-name{font-weight:500}.category-change{float:right;font-weight:700;color:#dc3545}.category-bar{position:absolute;bottom:0;left:0;height:4px;background:linear-gradient(90deg,#ffc107,#dc3545);max-width:100%}.historical-optimization{padding:1.5rem;background:#f8f9fa;border-radius:10px}.historical-optimization h3{margin:0 0 1rem}.opt-timeline{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.opt-year{padding:1rem;background:#fff;border-radius:8px;text-align:center;min-width:80px;border:2px solid #e9ecef}.opt-year.current{border-color:#0f4c75;background:linear-gradient(135deg,#e8f4fd,#fff)}.opt-year .year{display:block;font-size:.85rem;color:#666;margin-bottom:.25rem}.opt-year .cost{display:block;font-size:1.3rem;font-weight:700;color:#0f4c75}.opt-year .change{display:block;font-size:.8rem;color:#dc3545;margin-top:.25rem}.historical-optimization .insight{margin:0;color:#555}.optimization-result{display:flex;flex-wrap:wrap;align-items:center;gap:2rem;padding:1.5rem;background:linear-gradient(135deg,#d4edda,#c3e6cb);border-radius:12px;margin-bottom:2rem}.result-highlight{text-align:center}.result-highlight .label{display:block;font-size:.9rem;color:#155724;margin-bottom:.25rem}.result-highlight .value{display:block;font-size:2.5rem;font-weight:700;color:#155724}.result-highlight .note{display:block;font-size:.85rem;color:#28a745}.result-weight{font-size:1rem;color:#155724}.optimal-foods{margin-bottom:2rem}.optimal-foods h3{margin-bottom:1rem}.optimal-foods table{width:100%;border-collapse:collapse}.optimal-foods th,.optimal-foods td{padding:.75rem;text-align:left;border-bottom:1px solid #eee}.optimal-foods th{background:#f8f9fa;font-weight:600;color:#555}.optimal-foods td:nth-child(2){font-weight:600;color:#0f4c75}.optimal-foods td:nth-child(3){font-weight:600;color:#28a745}.nutrient-achievement{margin-bottom:2rem}.nutrient-achievement h3{margin-bottom:1rem}.achievement-grid{display:flex;flex-wrap:wrap;gap:.75rem}.achievement-item{padding:.5rem 1rem;background:#f8f9fa;border-radius:6px;font-size:.9rem}.achievement-item.achieved{background:#d4edda;color:#155724}.achievement-item .name{font-weight:500}.achievement-item .ratio{margin-left:.5rem;font-weight:600}.conclusion{padding:1.5rem;background:#f8f9fa;border-radius:10px}.conclusion h3{margin:0 0 1rem;color:#16213e}.conclusion p{margin:.75rem 0;line-height:1.7}.efficiency-intro{padding:1rem 1.5rem;background:linear-gradient(135deg,#e8f4fd,#d4edfa);border-radius:10px;margin-bottom:2rem}.efficiency-intro p{margin:0;color:#0f4c75;line-height:1.6}.nutrient-cost-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.nutrient-cost-card{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 2px 10px #0000000f;border:1px solid #e9ecef;transition:transform .2s,box-shadow .2s}.nutrient-cost-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000001a}.nutrient-cost-header{display:flex;align-items:baseline;gap:.25rem;margin-bottom:.75rem}.nutrient-cost-name{font-size:1.1rem;font-weight:700;color:#16213e}.nutrient-cost-unit{font-size:.85rem;color:#888}.cheapest-cost{font-size:.95rem;color:#28a745;margin-bottom:1rem;padding:.5rem;background:#f0fff4;border-radius:6px;text-align:center}.cheapest-cost strong{font-size:1.2rem}.top-foods-list{display:flex;flex-direction:column;gap:.5rem}.top-food-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:#f8f9fa;border-radius:6px;font-size:.9rem}.top-food-item.best{background:linear-gradient(135deg,#d4edda,#c3e6cb);border:1px solid #28a745}.top-food-item .rank{width:20px;height:20px;background:#e9ecef;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#666}.top-food-item.best .rank{background:#28a745;color:#fff}.top-food-item .food-name{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-food-item .food-cost{font-weight:700;color:#0f4c75}.efficiency-insight{padding:1.5rem;background:#f8f9fa;border-radius:10px}.efficiency-insight h3{margin:0 0 1rem;color:#16213e}.efficiency-insight ul{margin:0 0 1rem;padding-left:1.5rem}.efficiency-insight li{margin-bottom:.75rem;line-height:1.6}.efficiency-insight .insight-note{margin:0;font-size:.85rem;color:#888;font-style:italic}.yearly-chart{margin-bottom:2rem;padding:1.5rem;background:#f8f9fa;border-radius:12px}.yearly-chart h3{margin:0 0 1.5rem}.chart-container{display:flex;align-items:flex-end;justify-content:space-between;height:200px;gap:4px;padding:1rem 0;border-bottom:2px solid #ddd}.chart-bar-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;height:100%}.chart-bar{width:100%;max-width:40px;background:linear-gradient(180deg,#dc3545,#ffc107);border-radius:4px 4px 0 0;display:flex;align-items:flex-start;justify-content:center;min-height:20px;transition:height .3s ease}.bar-value{font-size:.65rem;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3);padding-top:4px;white-space:nowrap}.bar-year{font-size:.7rem;color:#666;margin-top:.5rem;font-weight:500}.bar-year.current{color:#0f4c75;font-weight:700}.seasonal-section{margin-bottom:2rem}.seasonal-section h3{margin-bottom:.5rem}.seasonal-desc{color:#666;font-size:.9rem;margin-bottom:1.5rem}.seasonal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.seasonal-card{background:#fff;border-radius:10px;padding:1rem;box-shadow:0 2px 8px #0000000f}.seasonal-card h4{margin:0 0 1rem;color:#16213e;font-size:.95rem;text-align:center}.quarter-bars{display:flex;justify-content:space-around;align-items:flex-end;height:80px}.quarter-item{display:flex;flex-direction:column;align-items:center}.quarter-bar{width:35px;background:#e9ecef;border-radius:4px 4px 0 0;display:flex;align-items:center;justify-content:center;transition:all .3s}.quarter-bar.high{background:linear-gradient(180deg,#dc3545,#e57373)}.quarter-bar.low{background:linear-gradient(180deg,#28a745,#5cb85c)}.quarter-bar .factor{font-size:.65rem;font-weight:700;color:#333;writing-mode:vertical-rl;text-orientation:mixed}.quarter-bar.high .factor,.quarter-bar.low .factor{color:#fff}.quarter-label{font-size:.7rem;color:#888;margin-top:.5rem}.food-seasonal-examples{margin-top:1.5rem}.seasonal-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.seasonal-header h4{margin:0;font-size:.95rem}.year-tabs{display:flex;flex-wrap:wrap;gap:.25rem}.year-tabs button{padding:.3rem .6rem;background:#f0f2f5;border:1px solid #ddd;border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .2s}.year-tabs button:hover{background:#e0e4e8}.year-tabs button.active{background:#0f4c75;border-color:#0f4c75;color:#fff}.food-seasonal-examples h4{margin:0 0 1rem;font-size:.95rem}.seasonal-table{width:100%;border-collapse:collapse;font-size:.9rem}.seasonal-table th,.seasonal-table td{padding:.75rem .5rem;text-align:center;border-bottom:1px solid #eee}.seasonal-table th{background:#f8f9fa;font-weight:600;color:#555}.seasonal-table th:first-child,.seasonal-table td:first-child{text-align:left;font-weight:500}.seasonal-table .low-price{color:#28a745;font-weight:700;background:#f0fff4}.seasonal-table .high-price{color:#dc3545;font-weight:700;background:#fff5f5}.app-footer{text-align:center;padding:2rem;background:#16213e;color:#aaa;font-size:.85rem}.app-footer p{margin:0}.calculator-section{max-width:100%}.calc-settings{display:flex;gap:2rem;margin-bottom:1.5rem;padding:1rem;background:#f8f9fa;border-radius:10px}.calc-setting-group{display:flex;align-items:center;gap:.5rem}.calc-setting-group label{font-weight:600;color:#555}.calc-setting-group select{padding:.5rem 1rem;border:1px solid #ddd;border-radius:6px;font-size:.95rem;background:#fff;cursor:pointer}.calc-setting-group select:focus{outline:none;border-color:#0f4c75;box-shadow:0 0 0 2px #0f4c7526}.food-selection{margin-bottom:1.5rem}.food-selection-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.food-selection-header h3{margin:0}.food-search-input{padding:.5rem 1rem;border:1px solid #ddd;border-radius:6px;font-size:.9rem;min-width:200px}.food-search-input:focus{outline:none;border-color:#0f4c75;box-shadow:0 0 0 2px #0f4c7526}.food-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem;max-height:350px;overflow-y:auto;padding:.5rem;background:#f8f9fa;border-radius:8px}.food-grid .food-item{display:flex;flex-direction:column;gap:.25rem;padding:.75rem;background:#fff;border:2px solid #e9ecef;border-radius:8px;cursor:pointer;transition:all .2s}.food-grid .food-item:hover{border-color:#3282b8;background:#f0f7ff}.food-grid .food-item.selected{border-color:#28a745;background:#d4edda}.food-grid .food-item .food-name{font-weight:600;font-size:.85rem;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.food-grid .food-item .food-price-info{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem}.food-grid .food-item .food-unit-price{font-size:.8rem;color:#28a745;font-weight:600}.food-grid .food-item .food-100g-price{font-size:.65rem;color:#888}.food-grid .food-item .food-calories{font-size:.7rem;color:#888}.calc-actions{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.calc-run-btn{padding:.75rem 2rem;background:linear-gradient(135deg,#0f4c75,#3282b8);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.calc-run-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #0f4c754d}.calc-run-btn:disabled{background:#adb5bd;cursor:not-allowed;transform:none;box-shadow:none}.calc-hint{color:#888;font-size:.9rem}.calc-hint.base-only{color:#856404;background:#fff9e6;padding:.25rem .5rem;border-radius:4px;border:1px solid #f0ad4e}.calc-result{padding:1.5rem;background:#f8f9fa;border-radius:12px}.calc-result-header{display:flex;gap:2rem;margin-bottom:1.5rem}.calc-result-header>div{padding:1rem 1.5rem;background:linear-gradient(135deg,#d4edda,#c3e6cb);border-radius:10px;text-align:center}.calc-result-header .label{display:block;font-size:.85rem;color:#155724;margin-bottom:.25rem}.calc-result-header .value{font-size:1.8rem;font-weight:700;color:#155724}.calc-foods-table{margin-bottom:1.5rem}.calc-foods-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.calc-foods-header h4{margin:0;color:#16213e}.recalc-btn{padding:.5rem 1rem;background:linear-gradient(135deg,#e74c3c,#c0392b);border:none;border-radius:6px;color:#fff;font-weight:600;font-size:.85rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.recalc-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #e74c3c66}.recalc-btn:disabled{opacity:.6;cursor:not-allowed}.calc-foods-table table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden}.calc-foods-table th,.calc-foods-table td{padding:.75rem;text-align:left;border-bottom:1px solid #eee}.calc-foods-table th{background:#f8f9fa;font-weight:600;color:#555}.calc-foods-table .th-check,.calc-foods-table .td-check{width:50px;text-align:center}.calc-foods-table .td-check input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#3282b8}.calc-foods-table tr.excluded{background:#f8f9fa}.calc-foods-table .text-muted{color:#aaa!important;text-decoration:line-through}.calc-foods-table td:nth-child(2){font-weight:600;color:#0f4c75}.calc-foods-table td:nth-child(3){font-weight:600;color:#0f4c75}.calc-foods-table td:nth-child(4){font-weight:600;color:#28a745}.excluded-info{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem;padding:.75rem;background:#fff5f5;border:1px solid #e74c3c;border-radius:6px}.excluded-label{font-size:.85rem;font-weight:600;color:#c0392b}.excluded-tag{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:#fff;border:1px solid #e74c3c;border-radius:4px;font-size:.8rem;color:#c0392b}.excluded-tag button{background:none;border:none;color:#c0392b;cursor:pointer;font-size:1rem;line-height:1;padding:0 .2rem}.excluded-tag button:hover{color:#e74c3c}.calc-nutrients h4{margin:0 0 1rem;color:#16213e}.nutrient-bars{display:flex;flex-direction:column;gap:.5rem}.nutrient-bar-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:#fff;border-radius:6px}.nutrient-bar-item .nutrient-label{width:100px;font-size:.85rem;font-weight:500;color:#555}.nutrient-bar-bg{flex:1;height:12px;background:#e9ecef;border-radius:6px;overflow:hidden}.nutrient-bar-fill{height:100%;background:#ffc107;border-radius:6px;transition:width .3s ease}.nutrient-bar-fill.near{background:#3282b8}.nutrient-bar-fill.complete{background:#28a745}.nutrient-bar-item .nutrient-percent{width:45px;text-align:right;font-size:.85rem;font-weight:600;color:#333}.calc-error{padding:1.5rem;background:#f8d7da;border-radius:10px;text-align:center}.calc-error p{margin:.5rem 0;color:#721c24}.base-set-section{margin-bottom:1rem;padding:1rem;background:linear-gradient(135deg,#fff9e6,#fff3cd);border:2px solid #f0ad4e;border-radius:10px}.base-set-toggle{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.base-set-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:600;color:#856404}.base-set-checkbox input[type=checkbox]{width:20px;height:20px;accent-color:#f0ad4e;cursor:pointer}.base-set-checkbox.active .base-set-label{color:#856404}.base-set-desc{font-size:.8rem;color:#856404;background:#fff;padding:.25rem .5rem;border-radius:4px}.base-set-info{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px dashed #f0ad4e}.base-food{display:inline-block;padding:.3rem .6rem;background:#fff;border:1px solid #f0ad4e;border-radius:4px;font-size:.8rem;font-weight:500;color:#856404}.recipe-templates-section{margin-bottom:1.5rem;padding:1rem;background:linear-gradient(135deg,#fff5f5,#fff0f0);border:1px solid #ffccd5;border-radius:10px}.recipe-templates-section h3{margin:0 0 .25rem;font-size:.95rem;color:#c92a2a}.recipe-templates-desc{margin:0 0 .75rem;font-size:.8rem;color:#868e96}.recipe-templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;max-height:300px;overflow-y:auto;padding-right:.5rem}.recipe-template-item{background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:.75rem;display:flex;flex-direction:column;gap:.5rem;transition:border-color .2s,box-shadow .2s}.recipe-template-item:hover{border-color:#ff8787;box-shadow:0 2px 8px #ff878726}.recipe-template-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.recipe-name-link{font-weight:600;font-size:.9rem;color:#c92a2a;text-decoration:none;transition:color .2s}.recipe-name-link:hover{color:#e03131;text-decoration:underline}.recipe-name{font-weight:600;font-size:.9rem;color:#333}.recipe-servings{font-size:.75rem;color:#868e96;white-space:nowrap}.recipe-template-ingredients{display:flex;flex-wrap:wrap;gap:.25rem}.ingredient-tag{font-size:.7rem;padding:.15rem .4rem;border-radius:4px;background:#e9ecef;color:#495057}.ingredient-tag.matched{background:#d3f9d8;color:#2b8a3e}.ingredient-tag.unmatched{background:#ffe3e3;color:#c92a2a}.ingredient-more{font-size:.7rem;color:#868e96;padding:.15rem .4rem}.recipe-add-btn{margin-top:auto;padding:.4rem .75rem;background:linear-gradient(135deg,#ff8787,#fa5252);border:none;border-radius:5px;font-size:.8rem;font-weight:500;color:#fff;cursor:pointer;transition:all .2s}.recipe-add-btn:hover{background:linear-gradient(135deg,#fa5252,#e03131);transform:translateY(-1px)}.preset-section{margin-bottom:1.5rem;padding:1rem;background:#f8f9fa;border-radius:10px}.preset-section h3{margin:0 0 .75rem;font-size:.95rem;color:#555}.preset-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.preset-btn{padding:.5rem 1rem;background:linear-gradient(135deg,#e8f4fd,#d4edfa);border:1px solid #3282b8;border-radius:6px;font-size:.85rem;font-weight:500;color:#0f4c75;cursor:pointer;transition:all .2s}.preset-btn:hover{background:linear-gradient(135deg,#d4edfa,#bbe1fa);transform:translateY(-1px)}.preset-btn.all{background:linear-gradient(135deg,#d4edda,#c3e6cb);border-color:#28a745;color:#155724}.preset-btn.clear{background:#f8f9fa;border-color:#6c757d;color:#6c757d}.food-grid .food-item{display:flex;flex-direction:column;padding:0;overflow:hidden}.food-grid .food-item .food-item-main{display:flex;flex-direction:column;gap:.25rem;padding:.75rem;cursor:pointer}.food-grid .food-item.has-constraint{border-color:#ffc107;background:#fffef0}.food-grid .food-item.has-constraint.selected{border-color:#ff9800;background:#fff8e1}.food-constraint{padding:.5rem;background:#00000008;border-top:1px solid #eee}.constraint-options{display:flex;gap:.25rem;justify-content:center}.constraint-btn{padding:.2rem .5rem;background:#fff;border:1px solid #ddd;border-radius:4px;font-size:.7rem;cursor:pointer;transition:all .2s}.constraint-btn:hover{background:#ffc107;border-color:#ffc107;color:#fff}.constraint-select{padding:.2rem .4rem;border:1px solid #28a745;border-radius:4px;font-size:.7rem;background:#d4edda;color:#155724;cursor:pointer;max-width:90px}.constraint-select:focus{outline:none;border-color:#28a745;box-shadow:0 0 0 2px #28a74540}.constraint-display{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.constraint-badge{font-size:.75rem;font-weight:600;color:#856404;background:#fff3cd;padding:.2rem .5rem;border-radius:4px}.constraint-remove{width:18px;height:18px;padding:0;background:#dc3545;color:#fff;border:none;border-radius:50%;font-size:.7rem;cursor:pointer;line-height:1}.constraint-remove:hover{background:#c82333}.constraints-summary{margin-bottom:1rem;padding:.75rem 1rem;background:#fff3cd;border-radius:8px;border:1px solid #ffc107}.constraints-summary h4{margin:0 0 .5rem;font-size:.85rem;color:#856404}.constraints-list{display:flex;flex-wrap:wrap;gap:.5rem}.constraint-tag{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:#fff;border:1px solid #ffc107;border-radius:4px;font-size:.8rem;color:#856404}.constraint-tag button{width:16px;height:16px;padding:0;background:#856404;color:#fff;border:none;border-radius:50%;font-size:.65rem;cursor:pointer;line-height:1;margin-left:.25rem}.constraint-tag button:hover{background:#533f03}.calc-settings{flex-wrap:wrap}.calc-setting-group select{min-width:120px}.preset-btn.school{background:linear-gradient(135deg,#fff3cd,#ffeeba);border-color:#ffc107;color:#856404}.nutrient-bar-bg-200{flex:1;height:16px;background:#e9ecef;border-radius:6px;overflow:visible;position:relative}.nutrient-bar-bg-200 .bar-100-mark{position:absolute;left:50%;top:-2px;bottom:-2px;width:2px;background:#333;z-index:2}.nutrient-bar-bg-200 .nutrient-bar-fill{position:absolute;left:0;top:0;bottom:0;border-radius:6px;transition:width .3s ease}.nutrient-bar-fill.low{background:linear-gradient(90deg,#dc3545,#f5c6cb)}.nutrient-bar-fill.near{background:linear-gradient(90deg,#ffc107,#ffcd38)}.nutrient-bar-fill.complete{background:linear-gradient(90deg,#28a745,#5cb85c)}.nutrient-bar-fill.excess{background:linear-gradient(90deg,#28a745,#17a2b8)}.nutrient-values{display:flex;align-items:baseline;gap:.25rem;min-width:150px;font-size:.8rem;justify-content:flex-end}.nutrient-actual{font-weight:700;color:#0f4c75}.nutrient-slash{color:#aaa}.nutrient-required{color:#666}.nutrient-percent{font-weight:600;color:#888;margin-left:.25rem}.nutrient-percent.achieved{color:#28a745}.nutrient-bar-row{background:#fff;border-radius:8px;padding:.5rem;margin-bottom:.5rem}.nutrient-bar-item{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:.75rem}.stacked-bar{position:absolute;left:0;top:0;bottom:0;width:100%}.stacked-segment{position:absolute;top:0;bottom:0;border-radius:4px;transition:all .3s ease;opacity:.85}.stacked-segment:hover{opacity:1;transform:scaleY(1.1);z-index:10}.food-color-legend{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;padding:.75rem;background:#f8f9fa;border-radius:8px}.legend-item{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .5rem;background:#fff;border:1px solid;border-radius:4px;font-size:.75rem;font-weight:500}.legend-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0}.contribution-list{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem;padding-left:95px}.contribution-tag{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .4rem;background:#fff;border:1px solid;border-radius:4px;font-size:.7rem;font-weight:500}.contrib-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.contrib-pct{font-weight:700;margin-left:.2rem}.calc-nutrients .nutrient-bars{display:flex;flex-direction:column;gap:.25rem}
