:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.navbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background-color:#2c3e50;color:#fff}.navbar-brand a{font-size:1.5rem;font-weight:700;color:#3498db;text-decoration:none}.navbar-menu{display:flex;align-items:center;gap:1.5rem}.nav-link{color:#fff;text-decoration:none;transition:color .2s}.nav-link:hover{color:#3498db}.nav-user{color:#95a5a6;font-size:.9rem}.nav-button{padding:.5rem 1rem;background-color:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s}.nav-button:hover{background-color:#c0392b}.nav-link.primary{background-color:#3498db;padding:.5rem 1rem;border-radius:6px;font-weight:500}.nav-link.primary:hover{background-color:#2980b9;color:#fff}.nav-link.primary.active{background-color:#2980b9}.nav-dropdown{position:relative}.dropdown-trigger{background:none;border:none;color:#fff;cursor:pointer;font-size:1rem;display:flex;align-items:center;gap:.25rem;padding:.5rem;transition:color .2s}.dropdown-trigger:hover{color:#3498db}.dropdown-arrow{font-size:.75rem}.dropdown-menu{position:absolute;top:100%;right:0;background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;min-width:160px;z-index:1000;overflow:hidden;margin-top:.5rem}.dropdown-item{display:block;padding:.75rem 1rem;color:#2c3e50;text-decoration:none;transition:background-color .2s}.dropdown-item:hover{background-color:#f8f9fa;color:#3498db}.auth-page{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 60px);padding:2rem}.auth-card{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 10px #0000001a;width:100%;max-width:400px}.auth-card h1{margin-bottom:1.5rem;text-align:center;color:#2c3e50}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;color:#34495e;font-weight:500}.form-group input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#3498db}.auth-button{width:100%;padding:.75rem;background-color:#3498db;color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .2s;margin-top:1rem}.auth-button:hover:not(:disabled){background-color:#2980b9}.auth-button:disabled{background-color:#95a5a6;cursor:not-allowed}.auth-link{text-align:center;margin-top:1rem;color:#7f8c8d}.auth-link a{color:#3498db;text-decoration:none}.auth-link a:hover{text-decoration:underline}.error-message{background-color:#e74c3c;color:#fff;padding:.75rem;border-radius:4px;margin-bottom:1rem;text-align:center}.oauth-divider{display:flex;align-items:center;margin:1.5rem 0}.oauth-divider:before,.oauth-divider:after{content:"";flex:1;height:1px;background-color:#ddd}.oauth-divider span{padding:0 1rem;color:#7f8c8d;font-size:.875rem}.oauth-button{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;cursor:pointer;text-decoration:none;transition:background-color .2s,border-color .2s;box-sizing:border-box}.oauth-button:hover{background-color:#f8f9fa;border-color:#ccc}.google-button{background-color:#fff;color:#3c4043}.google-button:hover{background-color:#f8f9fa}.dashboard{padding:2rem;max-width:1200px;margin:0 auto}.dashboard h1{color:#2c3e50;margin-bottom:2rem}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.dashboard-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 10px #0000001a}.dashboard-card h2{color:#2c3e50;margin-bottom:1rem;font-size:1.25rem}.allergy-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.allergy-tag{background-color:#e74c3c;color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.9rem}.empty-message{color:#95a5a6;font-style:italic;margin-bottom:1rem}.card-link{display:inline-block;color:#3498db;text-decoration:none;font-weight:500;margin-top:.5rem}.card-link:hover{text-decoration:underline}.how-it-works{padding-left:1.25rem;color:#34495e}.how-it-works li{margin-bottom:.5rem}.allergies-page{padding:2rem;max-width:900px;margin:0 auto}.allergies-page h1{color:#2c3e50;margin-bottom:.5rem}.allergy-category{margin-bottom:2rem}.allergy-category h2{color:#34495e;font-size:1.1rem;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.5px}.allergy-grid{display:flex;flex-wrap:wrap;gap:.75rem}.allergy-button{padding:.5rem 1rem;border:2px solid #ddd;border-radius:25px;background:#fff;color:#34495e;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.5rem}.allergy-button:hover:not(:disabled){border-color:#3498db}.allergy-button:disabled{opacity:.7;cursor:not-allowed}.check{font-weight:700}.selected-summary{margin-top:2rem;padding:1.5rem;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a}.selected-summary h3{color:#2c3e50;margin-bottom:1rem}.selected-tags{display:flex;flex-wrap:wrap;gap:.5rem}.selected-tag{background-color:#e74c3c;color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.9rem}.no-selection{color:#95a5a6;font-style:italic}.no-allergies,.loading{text-align:center;padding:2rem;color:#7f8c8d}.restaurants-page{padding:2rem;max-width:1200px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-header h1{color:#2c3e50}.add-button{padding:.75rem 1.5rem;background-color:#27ae60;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}.form-row input:focus{outline:none;border-color:#3498db}.restaurants-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.restaurant-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 10px #0000001a;text-decoration:none;transition:transform .2s,box-shadow .2s}.restaurant-card:hover{transform:translateY(-2px);box-shadow:0 4px 15px #00000026}.restaurant-card h2{color:#2c3e50;margin-bottom:.5rem;font-size:1.25rem}.cuisine-tag{display:inline-block;background-color:#3498db;color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.85rem;margin-bottom:.5rem}.address{color:#7f8c8d;font-size:.9rem;margin-top:.5rem}.no-restaurants{text-align:center;padding:3rem;color:#7f8c8d}.loading{text-align:center;padding:2rem;color:#7f8c8d}.restaurant-detail{padding:2rem;max-width:1200px;margin:0 auto}.restaurant-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.restaurant-header h1{color:#2c3e50;margin-bottom:.5rem}.cuisine-tag{display:inline-block;background-color:#3498db;color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.85rem}.address{color:#7f8c8d;margin-top:.5rem}.add-button{padding:.75rem 1.5rem;background-color:#27ae60;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.add-button:hover{background-color:#219a52}.add-form{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:2rem}.form-row{display:flex;gap:1rem;margin-bottom:1rem}.form-row input{flex:1;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.add-form textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;margin-bottom:1rem;min-height:80px;resize:vertical;box-sizing:border-box}.submit-button{padding:.75rem 1.5rem;background-color:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.menu-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.menu-controls h2{color:#2c3e50}.filter-toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer;color:#34495e}.filter-toggle input{width:18px;height:18px;cursor:pointer}.dishes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.dish-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 10px #0000001a;border-left:4px solid #27ae60}.dish-card.unsafe{border-left-color:#e74c3c;background-color:#fdf2f2}.dish-header h3{color:#2c3e50;margin:0}.price{font-weight:700;color:#27ae60}.category-tag{display:inline-block;background-color:#ecf0f1;color:#7f8c8d;padding:.2rem .5rem;border-radius:4px;font-size:.8rem;margin-bottom:.5rem}.description{color:#34495e;font-size:.95rem;margin:.5rem 0}.ingredients{font-size:.85rem;color:#7f8c8d;margin-top:.5rem}.safety-badge{display:inline-block;padding:.25rem .75rem;border-radius:20px;font-size:.85rem;font-weight:500;margin-top:.75rem}.safety-badge.safe{background-color:#27ae60;color:#fff}.safety-badge.safe.low{background-color:#f39c12}.safety-badge.unsafe{background-color:#e74c3c;color:#fff}.conflicts{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.5rem}.conflict-item{font-size:.8rem;color:#c0392b;background-color:#fadbd8;padding:.2rem .5rem;border-radius:4px}.no-dishes{text-align:center;padding:3rem;color:#7f8c8d}.loading,.error{text-align:center;padding:2rem;color:#7f8c8d}.parties-page{max-width:1200px;margin:0 auto;padding:2rem}.parties-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.parties-header h1{margin:0;color:#2c3e50}.create-party-button{background-color:#3498db;color:#fff;padding:.75rem 1.5rem;border-radius:8px;text-decoration:none;font-weight:500;transition:background-color .2s}.create-party-button:hover{background-color:#2980b9}.empty-state{text-align:center;padding:4rem 2rem;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a}.empty-state h2{color:#2c3e50;margin-bottom:.5rem}.empty-state p{color:#7f8c8d;margin-bottom:1.5rem}.parties-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.party-card{background:#fff;border-radius:12px;padding:1.5rem;text-decoration:none;color:inherit;box-shadow:0 2px 10px #0000001a;transition:transform .2s,box-shadow .2s}.party-card:hover{transform:translateY(-2px);box-shadow:0 4px 15px #00000026}.party-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.party-card-header h3{margin:0;color:#2c3e50;font-size:1.25rem}.status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-badge.invites{background-color:#e8f4fd;color:#3498db}.status-badge.finalized{background-color:#e8fdf2;color:#27ae60}.status-badge.completed{background-color:#f0e8fd;color:#9b59b6}.party-card-details{color:#7f8c8d}.party-date{font-size:.95rem;margin:0 0 .5rem;color:#2c3e50}.party-location{font-size:.875rem;margin:0 0 .75rem}.party-meta{display:flex;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}.cuisine-tag,.vibe-tag{padding:.25rem .5rem;border-radius:4px;font-size:.75rem}.cuisine-tag{background-color:#e8f4fd;color:#3498db}.vibe-tag{background-color:#f0e8fd;color:#9b59b6}.guest-count{font-size:.875rem;margin:0;color:#95a5a6}.create-party-page{max-width:600px;margin:0 auto;padding:2rem}.create-party-page h1{color:#2c3e50;margin-bottom:.5rem}.subtitle{color:#7f8c8d;margin-bottom:2rem}.party-form{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.form-section h2{font-size:1.1rem;color:#2c3e50;margin:0 0 .5rem}.form-group{margin-bottom:1.25rem}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-weight:500;color:#2c3e50;margin-bottom:.5rem;font-size:.9rem}.form-group input[type=text],.form-group input[type=date],.form-group input[type=time],.form-group select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:1rem;transition:border-color .2s;box-sizing:border-box}.form-group input:focus,.form-group select:focus{outline:none;border-color:#3498db}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.radio-group{display:flex;flex-direction:column;gap:.75rem}.radio-label{display:flex;align-items:flex-start;padding:.75rem;border:1px solid #ddd;border-radius:8px;cursor:pointer;transition:border-color .2s,background-color .2s}.radio-label:hover{border-color:#3498db}.radio-label input[type=radio]{margin-right:.75rem;margin-top:.25rem}.radio-label input[type=radio]:checked+.radio-text{color:#3498db}.radio-text{font-weight:500;color:#2c3e50;display:block}.radio-description{font-size:.8rem;color:#7f8c8d;display:block;margin-left:auto;padding-left:1rem}.form-actions{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem;background-color:#f8f9fa}.cancel-button{padding:.75rem 1.5rem;background-color:transparent;border:1px solid #ddd;border-radius:8px;color:#7f8c8d;font-size:1rem;cursor:pointer;transition:all .2s}.cancel-button:hover{border-color:#95a5a6;color:#2c3e50}.submit-button{padding:.75rem 1.5rem;background-color:#3498db;border:none;border-radius:8px;color:#fff;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.submit-button:hover{background-color:#2980b9}.error-message{background-color:#fdeaea;color:#e74c3c;padding:1rem;border-radius:8px;margin-bottom:1.5rem}@media(max-width:480px){.form-row{grid-template-columns:1fr}.radio-description{display:none}}.party-detail-page{max-width:900px;margin:0 auto;padding:2rem}.back-link{color:#3498db;text-decoration:none;font-size:.9rem;display:inline-block;margin-bottom:1rem}.back-link:hover{text-decoration:underline}.party-header{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 10px #0000001a;margin-bottom:1.5rem}.party-title{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.party-title h1{margin:0;color:#2c3e50}.status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:capitalize}.status-badge.draft{background-color:#ecf0f1;color:#7f8c8d}.status-badge.invites_sent{background-color:#e8f4fd;color:#3498db}.status-badge.voting{background-color:#fdf2e8;color:#e67e22}.status-badge.menu_finalized{background-color:#e8fdf2;color:#27ae60}.party-info{color:#7f8c8d}.party-date{font-size:1.1rem;color:#2c3e50;margin:0 0 .5rem}.party-location{margin:0 0 .75rem}.party-tags{display:flex;gap:.5rem;flex-wrap:wrap}.tag{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500}.tag.cuisine{background-color:#e8f4fd;color:#3498db}.tag.vibe{background-color:#f0e8fd;color:#9b59b6}.tag.difficulty{background-color:#fdf2e8;color:#e67e22}.party-content{display:flex;flex-direction:column;gap:1.5rem}section{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 10px #0000001a}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-header h2{margin:0;color:#2c3e50;font-size:1.2rem}.add-guest-button{background-color:#3498db;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.add-guest-button:hover{background-color:#2980b9}.add-guest-form{display:flex;gap:.75rem;margin-bottom:1rem;padding:1rem;background-color:#f8f9fa;border-radius:8px}.add-guest-form input{flex:1;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:1rem}.add-guest-form button{padding:.75rem 1.5rem;background-color:#27ae60;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s}.add-guest-form button:hover:not(:disabled){background-color:#219a52}.add-guest-form button:disabled{background-color:#bdc3c7;cursor:not-allowed}.guests-list{display:flex;flex-direction:column;gap:.75rem}.header-actions{display:flex;gap:.5rem}.refresh-button{padding:.5rem 1rem;background-color:transparent;color:#7f8c8d;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s}.refresh-button:hover{border-color:#3498db;color:#3498db}.guest-card{display:flex;flex-direction:column;padding:1rem;background-color:#f8f9fa;border-radius:8px;border-left:4px solid #ecf0f1;transition:border-color .2s}.guest-card.has-responded{border-left-color:#27ae60}.guest-card-header{display:flex;justify-content:space-between;align-items:center;width:100%}.guest-info{display:flex;align-items:center;gap:.75rem}.guest-name{font-weight:500;color:#2c3e50}.guest-status{padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase}.guest-status.invited{background-color:#ecf0f1;color:#7f8c8d}.guest-status.responded{background-color:#e8f4fd;color:#3498db}.guest-status.voting{background-color:#fdf2e8;color:#e67e22}.guest-status.completed{background-color:#e8fdf2;color:#27ae60}.guest-actions{display:flex;gap:.5rem}.copy-link-button{padding:.4rem .75rem;background-color:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.8rem;transition:background-color .2s}.copy-link-button:hover{background-color:#2980b9}.remove-guest-button{padding:.4rem .75rem;background-color:transparent;color:#e74c3c;border:1px solid #e74c3c;border-radius:4px;cursor:pointer;font-size:.8rem;transition:all .2s}.remove-guest-button:hover{background-color:#e74c3c;color:#fff}.guest-restrictions{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e8e8e8}.restrictions-label{font-size:.75rem;color:#7f8c8d;text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:.5rem}.restrictions-list{display:flex;flex-wrap:wrap;gap:.4rem}.restriction-tag{padding:.25rem .6rem;border-radius:12px;font-size:.8rem;background-color:#e74c3c;color:#fff}.restriction-tag.severe{background-color:#c0392b}.restriction-tag.anaphylaxis{background-color:#8e44ad}.no-restrictions{font-size:.85rem;color:#27ae60;font-style:italic}.empty-message{color:#7f8c8d;text-align:center;padding:2rem}.dishes-section h2{margin:0 0 .25rem;color:#2c3e50}.dish-category{margin-top:1.5rem}.dish-category h3{margin:0 0 .75rem;color:#7f8c8d;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.dishes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.dish-card{background:#f8f9fa;border-radius:8px;padding:1rem;border-left:4px solid #3498db}.dish-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.dish-header h4{margin:0;color:#2c3e50;font-size:1rem}.dish-votes{display:flex;gap:.5rem;font-size:.75rem}.dish-votes .yes-votes{color:#27ae60;font-weight:500}.dish-votes .no-votes{color:#e74c3c;font-weight:500}.dish-description{color:#7f8c8d;font-size:.875rem;margin:0 0 .75rem;line-height:1.4}.dish-meta{display:flex;gap:.75rem;font-size:.75rem;color:#95a5a6}.dish-meta .difficulty{text-transform:capitalize;background:#f0e8fd;color:#9b59b6;padding:.1rem .4rem;border-radius:4px}.restrictions-summary-section{border-left:4px solid #e74c3c}.restrictions-summary-section h2{margin:0 0 .25rem;color:#2c3e50}.section-description{font-size:.875rem;color:#7f8c8d;margin:0 0 1rem}.restrictions-summary{display:flex;flex-direction:column;gap:.5rem}.restriction-summary-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background-color:#fff5f5;border-radius:6px}.restriction-summary-item .restriction-name{font-weight:600;color:#e74c3c;min-width:120px}.restriction-summary-item .restriction-count{color:#2c3e50;font-size:.9rem}.restriction-summary-item .restriction-guests{color:#7f8c8d;font-size:.85rem}.menu-section{text-align:center}.menu-section h2{margin-bottom:1rem;color:#27ae60}.view-menu-button{display:inline-block;padding:.75rem 2rem;background-color:#27ae60;color:#fff;text-decoration:none;border-radius:8px;font-weight:500;transition:background-color .2s}.view-menu-button:hover{background-color:#219a52}.actions-section h2{margin-bottom:1rem;color:#2c3e50}.actions-grid{display:flex;gap:1rem;flex-wrap:wrap}.action-button{padding:.75rem 1.5rem;border:none;border-radius:8px;cursor:pointer;font-size:1rem;transition:all .2s}.action-button.primary{background-color:#3498db;color:#fff}.action-button.primary:hover:not(:disabled){background-color:#2980b9}.action-button.success{background-color:#27ae60;color:#fff}.action-button.success:hover:not(:disabled){background-color:#219a52}.action-button.danger{background-color:transparent;color:#e74c3c;border:1px solid #e74c3c}.action-button.danger:hover{background-color:#e74c3c;color:#fff}.action-button:disabled{opacity:.6;cursor:not-allowed}@media(max-width:600px){.section-header{flex-direction:column;align-items:flex-start;gap:.75rem}.header-actions{width:100%}.header-actions button{flex:1}.guest-card-header{flex-direction:column;align-items:flex-start;gap:.75rem}.guest-actions{width:100%}.guest-actions button{flex:1}.restriction-summary-item{flex-direction:column;align-items:flex-start;gap:.25rem}.restriction-summary-item .restriction-name{min-width:auto}}.guest-join-page{max-width:600px;margin:0 auto;padding:2rem;min-height:100vh}.loading-state,.error-state{text-align:center;padding:4rem 2rem}.error-state h1{color:#e74c3c;margin-bottom:1rem}.invitation-header{text-align:center;margin-bottom:2rem}.invitation-header h1{color:#3498db;font-size:2rem;margin-bottom:1.5rem}.party-details{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 10px #0000001a}.party-details h2{margin:0 0 .5rem;color:#2c3e50}.party-details .host{color:#7f8c8d;margin:0 0 .75rem}.party-details .date{color:#2c3e50;font-weight:500;margin:0 0 .25rem}.party-details .location{color:#7f8c8d;margin:0}.welcome-message{background:#e8f4fd;border-radius:8px;padding:1rem 1.5rem;margin-bottom:1.5rem;text-align:center}.welcome-message p{margin:0;color:#2c3e50}.restrictions-form{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.form-section{padding:1.5rem;border-bottom:1px solid #ecf0f1}.form-section:last-of-type{border-bottom:none}.form-section h3{margin:0 0 1rem;color:#2c3e50;font-size:1rem}.allergy-category{margin-bottom:1rem}.allergy-category:last-child{margin-bottom:0}.allergy-category h4{margin:0 0 .5rem;color:#7f8c8d;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px}.allergy-grid{display:flex;flex-wrap:wrap;gap:.5rem}.allergy-button{padding:.5rem 1rem;border:2px solid #ddd;border-radius:20px;background:#fff;color:#2c3e50;cursor:pointer;font-size:.9rem;transition:all .2s}.allergy-button:hover{border-color:#3498db}.allergy-button.selected{background-color:#e74c3c;border-color:#e74c3c;color:#fff}.custom-restriction-input{display:flex;gap:.5rem}.custom-restriction-input input{flex:1;padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:1rem}.custom-restriction-input button{padding:.75rem 1.5rem;background-color:#3498db;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem;transition:background-color .2s}.custom-restriction-input button:hover{background-color:#2980b9}.custom-restrictions-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.custom-tag{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .75rem;background-color:#9b59b6;color:#fff;border-radius:20px;font-size:.9rem}.custom-tag button{background:none;border:none;color:#fff;font-size:1.2rem;cursor:pointer;padding:0;line-height:1;opacity:.8}.custom-tag button:hover{opacity:1}.no-restrictions{text-align:center;color:#7f8c8d}.no-restrictions p{margin:0}.submit-button{width:100%;padding:1rem;background-color:#27ae60;color:#fff;border:none;font-size:1.1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.submit-button:hover:not(:disabled){background-color:#219a52}.submit-button:disabled{background-color:#bdc3c7;cursor:not-allowed}.error-message{background-color:#fdeaea;color:#e74c3c;padding:1rem;border-radius:8px;margin-bottom:1rem}@media(max-width:480px){.guest-join-page{padding:1rem}.invitation-header h1{font-size:1.5rem}.custom-restriction-input{flex-direction:column}}.guest-voting-page{max-width:800px;margin:0 auto;padding:2rem;min-height:100vh}.loading-state,.error-state,.waiting-state{text-align:center;padding:4rem 2rem;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a}.error-state h1{color:#e74c3c}.waiting-state h2{color:#3498db;margin-bottom:.5rem}.waiting-state p{color:#7f8c8d}.header{text-align:center;margin-bottom:1.5rem}.header h1{color:#2c3e50;margin:0 0 .25rem}.guest-name{color:#7f8c8d;margin:0}.completion-banner{background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff;padding:1.5rem;border-radius:12px;text-align:center;margin-bottom:1.5rem}.completion-banner h2{margin:0 0 .5rem}.completion-banner p{margin:0;opacity:.9}.voting-progress{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 2px 10px #0000001a;margin-bottom:1.5rem}.voting-progress h3{margin:0 0 1rem;color:#2c3e50;font-size:1rem}.progress-grid{display:flex;flex-wrap:wrap;gap:.75rem}.progress-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#f8f9fa;border-radius:8px;font-size:.875rem}.progress-item.complete{background:#e8fdf2}.progress-item .category-name{color:#2c3e50}.progress-item .progress-status{color:#7f8c8d;font-weight:500}.progress-item.complete .progress-status{color:#27ae60}.categories-list{display:flex;flex-direction:column;gap:2rem}.category-section{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 10px #0000001a}.category-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.category-header h2{margin:0;color:#2c3e50;font-size:1.25rem}.category-complete{color:#27ae60;font-size:.875rem;font-weight:500}.dishes-grid{display:flex;flex-direction:column;gap:1rem}.dish-card{border:2px solid #ecf0f1;border-radius:12px;padding:1.25rem;transition:border-color .2s}.dish-card.voted-yes{border-color:#27ae60;background:#f8fdf8}.dish-card.voted-no{border-color:#bdc3c7;background:#fafafa;opacity:.7}.dish-info{margin-bottom:1rem}.dish-info h3{margin:0 0 .5rem;color:#2c3e50}.dish-description{color:#7f8c8d;font-size:.9rem;margin:0 0 .75rem;line-height:1.5}.dish-meta{display:flex;flex-wrap:wrap;gap:.75rem}.meta-item{font-size:.8rem;color:#95a5a6}.meta-item.difficulty{text-transform:capitalize;padding:.2rem .5rem;background:#f0e8fd;color:#9b59b6;border-radius:4px}.vote-buttons{display:flex;gap:.75rem}.vote-button{flex:1;padding:.75rem 1rem;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.vote-button.yes{background:#27ae60;color:#fff}.vote-button.yes:hover:not(:disabled){background:#219a52}.vote-button.no{background:#ecf0f1;color:#7f8c8d}.vote-button.no:hover:not(:disabled){background:#bdc3c7;color:#2c3e50}.vote-button:disabled{opacity:.6;cursor:not-allowed}.voted-indicator{display:flex;align-items:center;justify-content:space-between;width:100%}.vote-yes{color:#27ae60;font-weight:500}.vote-no{color:#95a5a6}.change-vote{padding:.4rem .75rem;background:transparent;border:1px solid #ddd;border-radius:6px;color:#7f8c8d;font-size:.85rem;cursor:pointer;transition:all .2s}.change-vote:hover:not(:disabled){border-color:#3498db;color:#3498db}@media(max-width:600px){.guest-voting-page{padding:1rem}.vote-buttons{flex-direction:column}.voted-indicator{flex-direction:column;gap:.5rem;text-align:center}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:#ecf0f1;color:#2c3e50;line-height:1.6}.app{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1}.loading{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 60px);font-size:1.2rem;color:#7f8c8d}a{color:#3498db;text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font-family:inherit}input:focus,textarea:focus,select:focus{outline:none;border-color:#3498db}
