.plate-scanner-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.75);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.plate-scanner-modal{background:var(--surface);border-radius:20px;max-width:480px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.scanner-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border)}.scanner-header h2{font-size:20px;font-weight:700;margin:0}.scanner-header .close-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px}.scanner-body{flex:1 1;overflow-y:auto;padding:24px}.capture-section{display:flex;flex-direction:column;align-items:center;min-height:300px;justify-content:center}.capture-prompt{text-align:center;margin-bottom:32px}.capture-icon{font-size:64px;margin-bottom:16px}.capture-prompt h3{font-size:18px;font-weight:600;margin-bottom:8px}.capture-buttons{display:flex;gap:12px}.btn-capture,.btn-upload{display:flex;align-items:center;gap:8px;padding:14px 24px;border-radius:12px;font-weight:600;font-size:15px;cursor:pointer;transition:all .2s}.btn-capture{background:linear-gradient(135deg,#8b5cf6,#6366f1);color:white;border:none}.btn-capture:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(139,92,246,.3)}.btn-upload{background:var(--background);color:var(--text);border:1px solid var(--border)}.btn-upload:hover{background:var(--surface-hover)}.analyzing-state{display:flex;flex-direction:column;align-items:center;gap:16px;padding:40px;text-align:center}.analyzing-state h3{font-size:18px;font-weight:600;color:#a78bfa}.analyzing-state .spinner{animation:spin 1s linear infinite;color:#8b5cf6}.results-section{display:flex;flex-direction:column;gap:20px}.results-header{display:flex;gap:16px;align-items:center}.photo-preview{width:80px;height:80px;border-radius:12px;overflow:hidden;flex-shrink:0}.photo-preview img{width:100%;height:100%;object-fit:cover}.meal-info h3{font-size:18px;font-weight:600;margin-bottom:4px}.ai-feedback-section{background:linear-gradient(135deg,rgba(139,92,246,.1),rgba(59,130,246,.05));border:1px solid rgba(139,92,246,.2);border-radius:12px;padding:12px}.feedback-input-row{display:flex;gap:8px}.feedback-input{flex:1 1;padding:10px 14px;border-radius:8px;border:1px solid rgba(139,92,246,.3);background:rgba(139,92,246,.05);color:var(--text);font-size:14px}.feedback-input::placeholder{color:var(--text-muted)}.feedback-input:focus{outline:none;border-color:#8b5cf6}.btn-refine{display:flex;align-items:center;justify-content:center;padding:10px 16px;border-radius:8px;border:none;background:linear-gradient(135deg,#8b5cf6,#6366f1);color:white;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s;min-width:70px}.btn-refine:disabled{opacity:.5;cursor:not-allowed}.ingredients-list{display:flex;flex-direction:column;gap:8px}.ingredient-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--background);border-radius:10px;border:1px solid var(--border)}.ingredient-item .ing-info{flex:1 1;display:flex;flex-direction:column;gap:2px}.ingredient-item .ing-name{font-weight:500}.ingredient-item .ing-macros{color:var(--text-muted);font-size:13px}.totals-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:16px;background:linear-gradient(135deg,rgba(16,185,129,.1),rgba(59,130,246,.1));border-radius:12px}.totals-summary .total-item{text-align:center}.totals-summary .val{display:block;font-size:18px;font-weight:700;color:var(--text)}.totals-summary .label{font-size:11px;color:var(--text-muted);text-transform:uppercase}.scanner-footer{display:flex;gap:12px;padding:20px 24px;border-top:1px solid var(--border)}.scanner-footer button{flex:1 1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border-radius:10px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s}.scanner-footer .btn-secondary{background:var(--background);color:var(--text);border:1px solid var(--border)}.scanner-footer .btn-log{background:linear-gradient(135deg,#10b981,#059669);color:white;border:none}.scanner-footer .btn-primary{background:linear-gradient(135deg,#8b5cf6,#6366f1);color:white;border:none}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:500px){.plate-scanner-modal{max-height:100vh;border-radius:0}.capture-buttons{flex-direction:column;width:100%}.btn-capture,.btn-upload{justify-content:center}.scanner-footer{flex-wrap:wrap}.scanner-footer .btn-secondary{flex-basis:100%;order:3}}