*{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #6c63ff;--color-primary-light: #8e88ff;--color-primary-dark: #5a54d9;--color-secondary: #e0e0e0;--color-secondary-text: #666;--color-success: #4CAF50;--color-danger: #f44336;--color-warning: #ffc107;--color-info: #2196F3;--color-background: #f0f2f5;--color-card-background: #ffffff;--color-text: #333;--color-light-text: #888;--color-border: #e0e0e0;--color-shadow-light: rgba(0, 0, 0, .05);--color-shadow-medium: rgba(0, 0, 0, .1)}html,body,#root{height:100%;width:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;background-color:var(--color-background);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{color:var(--color-text);margin-bottom:15px;font-weight:700;text-align:center}h1{font-size:2.5em;margin-bottom:25px}h2{font-size:2em}h3{font-size:1.5em}p{line-height:1.8;color:var(--color-light-text)}a{color:var(--color-primary);text-decoration:none;transition:color .2s ease,opacity .2s ease}a:hover{color:var(--color-primary-light);opacity:.9}.app-main-content{flex-grow:1;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;width:100%;padding:20px;box-sizing:border-box}.card{background-color:var(--color-card-background);border-radius:12px;box-shadow:0 8px 25px var(--color-shadow-medium);padding:40px;margin:20px auto;width:100%;box-sizing:border-box;border:1px solid var(--color-border)}.card-sm{max-width:450px}.card-md{max-width:750px}.card-lg{max-width:1000px}.form-group{margin-bottom:25px}.form-group label{display:block;margin-bottom:10px;font-weight:600;color:var(--color-text);font-size:1em}.form-group input,.form-group textarea,.form-group select{width:100%;padding:14px;border:1px solid var(--color-border);border-radius:8px;font-size:1em;color:var(--color-text);background-color:#fcfcfc;transition:border-color .2s ease,box-shadow .2s ease}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #6c63ff33}.form-group textarea{resize:vertical;min-height:100px}.btn{padding:14px 30px;border:none;border-radius:8px;cursor:pointer;font-size:1.05em;font-weight:600;transition:background-color .2s ease,transform .1s ease,box-shadow .2s ease;display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;margin:8px}.btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 15px var(--color-shadow-medium)}.btn:active{transform:translateY(0);box-shadow:0 2px 5px var(--color-shadow-light)}.btn-primary{background-color:var(--color-primary);color:#fff;box-shadow:0 4px 15px #6c63ff33}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-light)}.btn-primary:active{background-color:var(--color-primary-dark)}.btn-outline-primary{background-color:transparent;color:var(--color-primary);border:2px solid var(--color-primary);box-shadow:none}.btn-outline-primary:hover:not(:disabled){background-color:var(--color-primary);color:#fff;box-shadow:0 4px 15px #6c63ff33}.btn-outline-primary:active{background-color:var(--color-primary-dark)}.btn-success{background-color:var(--color-success);color:#fff}.btn-danger{background-color:var(--color-danger);color:#fff}.btn-warning{background-color:var(--color-warning);color:var(--color-text)}.btn-info{background-color:var(--color-info);color:#fff}.btn-secondary-muted{background-color:var(--color-secondary);color:#fff}.btn:disabled{cursor:not-allowed;opacity:.5;transform:none;box-shadow:none}.d-flex{display:flex}.flex-column{flex-direction:column}.align-items-start{align-items:flex-start}.align-items-center{align-items:center}.justify-content-start{justify-content:flex-start}.justify-content-end{justify-content:flex-end}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.flex-wrap{flex-wrap:wrap}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.gap-10{gap:10px}.gap-15{gap:15px}.gap-20{gap:20px}.gap-30{gap:30px}.grid-layout{display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.grid-gap-10{gap:10px}.grid-gap-20{gap:20px}.mb-10{margin-bottom:10px}.mb-15{margin-bottom:15px}.mb-20{margin-bottom:20px}.mb-30{margin-bottom:30px}.mt-10{margin-top:10px}.mt-15{margin-top:15px}.mt-20{margin-top:20px}.mt-30{margin-top:30px}.mr-10{margin-right:10px}.ml-10{margin-left:10px}.p-15{padding:15px}.p-20{padding:20px}.p-30{padding:30px}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--color-light-text)}.text-error{color:var(--color-danger)}.text-bold{font-weight:700}.text-italic{font-style:italic}.meal-card{border-radius:10px;overflow:hidden;box-shadow:0 2px 8px var(--color-shadow-light);background-color:var(--color-card-background);display:flex;flex-direction:column;justify-content:space-between;transition:transform .2s ease,box-shadow .2s ease}.meal-card:hover{transform:translateY(-3px);box-shadow:0 6px 15px var(--color-shadow-medium)}.meal-card-image{width:100%;height:180px;object-fit:cover}.meal-card-content{padding:15px;flex-grow:1;display:flex;flex-direction:column}.meal-card-title{font-size:1.2em;font-weight:600;margin-bottom:8px;color:var(--color-text)}.meal-card-date{font-size:.9em;color:var(--color-light-text);margin-bottom:10px}.meal-card-description,.meal-card-tags{font-size:.9em;color:var(--color-secondary-text);margin-bottom:10px}.meal-card-actions{margin-top:auto;padding-top:10px;display:flex;justify-content:flex-end;gap:8px}.ranked-meal-item{display:flex;align-items:center;background-color:var(--color-card-background);border-radius:10px;box-shadow:0 4px 10px var(--color-shadow-light);padding:15px 20px;transition:transform .2s ease,box-shadow .2s ease}.ranked-meal-item:hover{transform:translateY(-2px);box-shadow:0 6px 15px var(--color-shadow-medium)}.rank-indicator{flex-shrink:0;width:50px;height:50px;background-color:var(--color-primary);color:#fff;border-radius:50%;display:flex;justify-content:center;align-items:center;font-size:1.5em;font-weight:700;margin-right:20px}.ranked-meal-image{width:80px;height:80px;object-fit:cover;border-radius:4px;margin-right:20px}.ranked-meal-details{flex-grow:1}.ranked-meal-title{font-size:1.25em;font-weight:600;margin-bottom:5px;color:var(--color-text)}.ranked-meal-date{font-size:.9em;color:var(--color-light-text)}.ranked-meal-actions{flex-shrink:0;display:flex;gap:8px;margin-left:20px}.auth-header{text-align:center;margin-bottom:40px;padding:20px 0}.auth-header-title{font-size:2.8em;font-weight:800;color:var(--color-primary);margin-bottom:10px}.auth-header-title .auth-header-link{color:inherit;text-decoration:none}.auth-header-subtitle{font-size:1.1em;color:var(--color-secondary-text);font-weight:400;margin-top:-10px}.app-header{background-color:var(--color-card-background);padding:15px 30px;box-shadow:0 2px 8px var(--color-shadow-light);width:100%;position:fixed;top:0;left:0;z-index:100;border-bottom:1px solid var(--color-border)}.app-header-left{display:flex;align-items:center;gap:20px}.app-title{font-size:1.8em;font-weight:700;margin:0}.app-title .app-title-link{color:var(--color-primary);text-decoration:none}.app-welcome-text{font-size:1em;color:var(--color-light-text);font-weight:500}.app-nav .btn{margin:0 5px;padding:8px 15px;font-size:.9em}.app-main-content{padding-top:80px}.landing-page-container{text-align:center;padding:20px;max-width:600px;margin:auto}.landing-page-title{font-size:3.5em;font-weight:800;color:var(--color-primary);margin-bottom:15px}.landing-page-subtitle{font-size:1.3em;color:var(--color-secondary-text);margin-top:-10px;margin-bottom:30px}.btn-lg{padding:16px 35px;font-size:1.15em}.ingredient-item{border:1px solid var(--color-border);border-radius:8px;padding:20px;margin-bottom:20px;background-color:#fdfdfd;box-shadow:0 2px 5px var(--color-shadow-light)}.ingredient-item .form-group{margin-bottom:15px}.profile-avatar{border-radius:50%;object-fit:cover;width:100px;height:100px;border:3px solid var(--color-primary);box-shadow:0 2px 8px var(--color-shadow-medium)}.profile-avatar-preview{border-radius:50%;object-fit:cover;width:80px;height:80px;border:2px solid var(--color-border)}.profile-header{align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid var(--color-border)}.profile-avatar{border-radius:50%;object-fit:cover;width:100px;height:100px;border:3px solid var(--color-primary);box-shadow:0 4px 12px var(--color-shadow-medium);flex-shrink:0}.profile-info{flex-grow:1;margin-left:20px}.profile-name{font-size:1.8em;font-weight:700;color:var(--color-text);margin-bottom:5px;text-align:left}.profile-email,.profile-member-since{font-size:.95em;color:var(--color-light-text);margin:0;text-align:left}.stat-card{background-color:#f5f8fb;border-radius:10px;padding:20px;text-align:center;box-shadow:0 1px 5px var(--color-shadow-light);border:1px solid var(--color-border)}.stat-label{font-size:.9em;color:var(--color-secondary-text);margin-bottom:5px;font-weight:500}.stat-value{font-size:1.8em;font-weight:700;color:var(--color-primary)}.profile-display .ranked-meal-item{box-shadow:none;border:1px solid var(--color-border);background-color:var(--color-card-background);padding:15px}.rank-indicator{position:relative;overflow:hidden}.ranked-meal-score-display{position:absolute;bottom:-5px;left:50%;transform:translate(-50%);font-size:.5em;font-weight:400;color:#fffc;white-space:nowrap}.filter-controls input[type=number]{max-width:100px}.filter-controls select{padding:10px 12px}.filter-controls{padding:20px;box-shadow:0 1px 5px var(--color-shadow-light);border-radius:10px;background-color:#fcfcfc}.filter-controls .form-group{margin-bottom:15px;flex-basis:150px;flex-grow:1}.filter-controls input[type=text]{padding:12px;font-size:1em;border-radius:8px}.filter-controls input[type=number]{max-width:100px;padding:10px 12px}.filter-controls select{padding:10px 12px;border-radius:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.btn-sm{padding:8px 15px;font-size:.9em}.w-100{width:100%}
