@import url("https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;700;900&family=Inter:wght@300;400;500;600;700&display=swap");*{box-sizing:border-box;padding:0;margin:0}:root{--bg-dark:#0f0f1a;--bg-card:#1a1a2e;--bg-lighter:#16213e;--accent-primary:#e94560;--accent-secondary:#0f3460;--accent-glow:#00d9ff;--text-primary:#ffffff;--text-secondary:#a0a0b0;--star-color:#ffd700}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system;background-color:var(--bg-dark);color:var(--text-primary)}ul{list-style-type:none}h2{font-weight:600;font-family:Orbitron,sans-serif}dialog{&[open]{position:fixed;width:80vw;height:50vh;min-height:270px;top:50%;left:50%;transform:translate(-50%,-50%);z-index:999;background:var(--bg-card);color:var(--text-primary);border:2px solid var(--accent-primary);border-radius:1rem;box-shadow:0 0 40px rgba(233,69,96,.3);& article{background-color:unset}}& form{display:flex;flex-direction:column;justify-content:space-between;height:100%}& header h3{font-family:Orbitron,sans-serif;padding:20px;color:var(--accent-glow)}& footer{padding-right:20px}&::-webkit-backdrop{background-color:rgba(0,0,0,.85)}&::backdrop{background-color:rgba(0,0,0,.85)}}footer{& button{text-transform:uppercase;font-size:1rem;font-weight:600;outline:0;border:0;padding:12px 24px;cursor:pointer;border-radius:8px;transition:all .3s ease}& .button--cancel{color:var(--text-secondary);background-color:var(--bg-lighter);border:1px solid var(--text-secondary)}& .button--cancel:hover{background-color:var(--accent-secondary)}& .button--confirm{background:linear-gradient(135deg,var(--accent-primary),#ff6b6b);color:white;box-shadow:0 4px 15px rgba(233,69,96,.4)}& .button--confirm:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(233,69,96,.6)}& menu{display:flex;justify-content:flex-end;padding:20px 0;gap:20px}}header{background:linear-gradient(135deg,var(--bg-card) 0,var(--accent-secondary) 100%);color:white;display:flex;justify-content:space-between;padding:1rem 2rem;align-items:center;border-bottom:2px solid var(--accent-primary);box-shadow:0 4px 20px rgba(233,69,96,.2);& img{height:2rem}& ul{display:none;position:absolute;width:220px;z-index:99}& a{text-decoration:none;color:white}.profileImage{border-radius:100%;border:2px solid var(--accent-glow);margin-right:10px;box-shadow:0 0 10px rgba(0,217,255,.5)}}.logo{display:flex;align-items:center;font-family:Orbitron,sans-serif;& img{-webkit-margin-end:10px;margin-inline-end:10px;filter:drop-shadow(0 0 8px var(--accent-glow))}color:white;text-decoration:none;font-size:1.5rem;font-weight:700;text-shadow:0 0 10px rgba(0,217,255,.5)}.menu{display:inline-block;position:relative;padding:15px 20px;align-self:stretch}.menu ul{left:calc(-220px * .9);color:var(--text-primary);background:var(--bg-card);border:1px solid var(--accent-primary);box-shadow:0 10px 40px rgba(0,0,0,.5);border-radius:8px;overflow:hidden;& li{padding:12px 16px;border-bottom:1px solid rgba(233,69,96,.2)}& a{font-weight:600;color:var(--text-primary)}& li:has(a):hover{background:linear-gradient(90deg,var(--accent-primary),transparent)}& a:visited{color:var(--text-primary)}}.menu:hover ul{display:block}.profile{display:flex;& p{font-weight:500}& a,& p{display:flex;align-items:center}& a{padding:8px 16px;background:var(--accent-secondary);border-radius:8px;transition:all .3s ease}& a:hover{background:var(--accent-primary);box-shadow:0 0 15px rgba(233,69,96,.5)}}.main__home{background:linear-gradient(180deg,var(--bg-dark) 0,#1a1a2e 100%);min-height:100vh}.main__restaurant{background:var(--bg-dark);min-height:90vh}article{margin:0 auto;background:transparent;padding:20px 40px;width:75%}.restaurants{display:grid;margin-top:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:30px;gap:30px;& li{background:var(--bg-card);border-radius:16px;overflow:hidden;border:1px solid rgba(233,69,96,.2);transition:all .3s ease;max-width:100%}& li:hover{transform:translateY(-8px);border-color:var(--accent-primary);box-shadow:0 20px 40px rgba(233,69,96,.2),0 0 30px rgba(0,217,255,.1)}& a{color:var(--text-primary);display:flex;flex-direction:column;flex:2 1 100%}& h2{font-weight:600;font-size:1.1rem}}.image-cover{width:100%;height:100%;object-fit:cover;max-height:200px;min-height:200px;position:relative;& img{width:100%;height:100%;object-fit:cover;position:absolute}}a{text-decoration:none}.restaurant__meta{display:flex;font-weight:500;justify-content:space-between;align-items:center;margin-bottom:10px;color:var(--text-secondary);font-size:.9rem}.restaurant__details{padding:20px}.restaurant__rating{padding:5px 0;display:flex;align-items:center;& ul{display:flex}& svg{width:1.5rem;height:1.5rem;color:var(--star-color);filter:drop-shadow(0 0 4px rgba(255,215,0,.5))}& span{color:var(--text-secondary);margin-left:8px}}.restaurant__review_summary{max-width:50vw;padding:15px;background:rgba(0,217,255,.1);border-left:3px solid var(--accent-glow);border-radius:8px;margin-top:10px;& p{color:var(--text-secondary);font-style:italic}& p:last-child{color:var(--accent-glow);font-size:.85rem;margin-top:8px}}.img__section{width:100%;height:400px;position:relative;>img{width:100%;height:100%;object-fit:cover;position:absolute;max-width:unset}}.details{position:absolute;bottom:0;padding:20px;color:white;& h2{font-size:2rem;text-shadow:0 2px 10px rgba(0,0,0,.5)}& span{color:inherit}}.details__container{background:linear-gradient(0deg,rgba(15,15,26,.95) 0,rgba(15,15,26,.5) 50%,transparent);position:absolute;right:0;bottom:0;left:0;width:100%;height:100%}.reviews{background:var(--bg-card);border-radius:16px;margin:20px auto;width:75%;padding:20px;& .review__item{padding:20px;border-bottom:1px solid rgba(233,69,96,.2)}& time{font-size:.8rem}& p,& time{color:var(--text-secondary)}& p{line-height:1.6}}.actions{position:absolute;z-index:1;bottom:-30px;right:20px;display:flex;justify-content:flex-end;gap:15px;& img{height:4rem}.review{cursor:pointer;background:linear-gradient(135deg,var(--accent-glow),#00b4d8);border-radius:1rem;box-shadow:0 8px 25px rgba(0,217,255,.4);transition:all .3s ease}.review:hover{transform:scale(1.1);box-shadow:0 12px 35px rgba(0,217,255,.6)}.add{background:linear-gradient(135deg,var(--accent-primary),#ff6b6b);border-radius:50%;cursor:pointer;height:4rem;box-shadow:0 8px 25px rgba(233,69,96,.4);transition:all .3s ease}.add:hover{transform:scale(1.1);box-shadow:0 12px 35px rgba(233,69,96,.6)}.add input{display:none}:where(.review,.add){margin:0}}#review{padding:20px;font-size:17px;border:none;border-bottom:2px solid var(--accent-primary);width:100%;background:var(--bg-lighter);color:var(--text-primary);border-radius:8px 8px 0 0}#review::placeholder{color:var(--text-secondary)}.star-rating{display:flex;flex-direction:row-reverse;justify-content:flex-end}.radio-input{position:fixed;opacity:0;pointer-events:none}.radio-label{cursor:pointer;font-size:0;color:rgba(255,255,255,.2);transition:color .1s ease-in-out}.radio-label:before{content:"★";display:inline-block;font-size:40px}.radio-input:checked~.radio-label{color:var(--star-color);text-shadow:0 0 10px rgba(255,215,0,.7)}.radio-label:hover,.radio-label:hover~.radio-label{color:#ffc700}.radio-input:checked+.radio-label:hover,.radio-input:checked+.radio-label:hover~.radio-label,.radio-input:checked~.radio-label:hover,.radio-input:checked~.radio-label:hover~.radio-label,.radio-label:hover~.radio-input:checked~.radio-label{color:#ffaa00}.average-rating{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;color:transparent;width:auto;display:inline-block;vertical-align:baseline;font-size:25px}.average-rating:before{--percent:calc(4.3 / 5 * 100%);content:"★★★★★";position:absolute;top:0;left:0;color:rgba(255,255,255,.2);background:linear-gradient(90deg,var(--star-color) var(--percent),rgba(255,255,255,.2) var(--percent));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.rating-picker{display:flex;flex-direction:row-reverse;justify-content:center}.filter-menu{background:var(--bg-card);border-radius:12px;border:1px solid rgba(233,69,96,.3);overflow:hidden;& summary{font-weight:700;cursor:pointer;display:flex;align-items:center;padding:15px;font-family:Orbitron,sans-serif}& summary img{filter:brightness(0) invert(1)}& form{padding:20px 20px 0;background:var(--bg-lighter)}& form,& label{display:flex;flex-direction:column}& label{padding:10px 0;flex-grow:1;color:var(--text-secondary);font-size:.75rem;line-height:1rem}& img{height:4rem;max-width:100%}& form div{display:flex;gap:10px}& select{color:var(--text-primary);background:var(--bg-card);font-size:.875rem;line-height:1.25rem;padding:12px;border:1px solid rgba(233,69,96,.3);border-radius:8px;cursor:pointer}& select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 10px rgba(233,69,96,.3)}& p:first-child{font-weight:300;font-size:1.25rem;line-height:1.75rem;margin-bottom:2px;color:var(--text-primary)}& p:last-child{color:var(--accent-glow);font-weight:600;font-size:.875rem;line-height:1.25rem}}.filter{margin:0 auto}.tags{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0;& span{font-weight:500;line-height:1.25rem;padding:8px 16px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border-radius:9999px;color:white;font-size:.9rem;box-shadow:0 4px 15px rgba(233,69,96,.3)}& button{cursor:pointer;margin-left:8px;padding:2px 8px;color:white;background-color:rgba(255,255,255,.2);outline:none;border:none;font-size:.8rem;border-radius:50%;transition:all .2s ease}& button:hover{background-color:rgba(255,255,255,.4)}}