@import "https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;600;700&family=Inter:wght@300;400;500;600;700&display=swap";:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--gold:#c9a84c;--gold-light:#f0d080;--gold-dark:#8b6914;--rose:#c0607a;--rose-light:#e8a0b0;--rose-dark:#8b3050;--bg:#0f0a0d;--bg2:#1a1018;--bg3:#241820;--surface:#ffffff0d;--surface2:#ffffff14;--border:#c9a84c33;--text:#f0e8d8;--text2:#a89880;--text3:#6a5848;--radius:18px;--shadow:0 8px 40px #00000080}body{background:var(--bg);min-height:100vh;color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,PingFang SC,Noto Sans SC,sans-serif}.loading{background:var(--bg);justify-content:center;align-items:center;height:100vh;font-size:56px;animation:2s ease-in-out infinite float;display:flex}@keyframes float{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-12px)scale(1.1)}}.app{background:linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%);flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;display:flex;position:relative;overflow:hidden}.top-bar{z-index:100;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-bottom:1px solid var(--border);background:#0f0a0de6;align-items:center;gap:10px;padding:14px 20px;display:flex;position:sticky;top:0}.logo{background:linear-gradient(135deg, var(--gold), var(--gold-light));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;flex:1;font-family:Noto Serif SC,serif;font-size:19px;font-weight:700}.admin-entry{cursor:pointer;width:auto;color:var(--text2);opacity:.7;background:0 0;border:none;padding:6px 8px;font-size:16px}.logout-btn{border:1px solid var(--border);color:var(--text2);cursor:pointer;background:0 0;border-radius:20px;width:auto;padding:6px 14px;font-size:12px;transition:all .2s}.logout-btn:hover{border-color:var(--rose);color:var(--rose)}.main-content{z-index:1;flex:1;padding-bottom:80px;position:relative;overflow-y:auto}.bottom-nav{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-top:1px solid var(--border);z-index:100;width:100%;max-width:480px;padding-bottom:env(safe-area-inset-bottom,0);background:#0f0a0df2;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav button{color:var(--text3);cursor:pointer;background:0 0;border:none;border-radius:0;flex-direction:column;flex:1;align-items:center;width:auto;padding:12px 0;font-size:22px;transition:all .2s;display:flex}.bottom-nav button small{letter-spacing:.5px;margin-top:2px;font-size:10px}.bottom-nav button.active,.bottom-nav button.active small{color:var(--gold)}.auth-page{flex-direction:column;justify-content:flex-end;align-items:center;min-height:100dvh;padding-bottom:48px;display:flex;position:relative;overflow:hidden}.auth-bg{z-index:0;filter:brightness(.65)saturate(1.1);background-image:url(https://images.unsplash.com/photo-1514575110897-1253ff7b2ccb?w=800&q=90);background-position:top;background-size:cover;position:absolute;inset:0;transform:scale(1.04)}.auth-gradient{z-index:1;background:linear-gradient(#0f0a0d1a 0%,#0f0a0d33 30%,#0f0a0dd9 70%,#0f0a0d 100%);position:absolute;inset:0}.auth-hero{z-index:2;text-align:center;width:100%;position:absolute;top:15%;left:50%;transform:translate(-50%)}.auth-gem{filter:drop-shadow(0 0 40px #c9a84ccc);margin-bottom:12px;font-size:64px;animation:3s ease-in-out infinite float}.auth-title{letter-spacing:4px;background:linear-gradient(135deg, var(--gold-light), var(--gold), var(--gold-light));-webkit-text-fill-color:transparent;text-shadow:none;-webkit-background-clip:text;background-clip:text;margin-bottom:10px;font-family:Noto Serif SC,serif;font-size:42px;font-weight:700}.auth-slogan{letter-spacing:3px;color:#f0e8d8cc;font-size:14px;font-weight:300}.auth-card{z-index:2;-webkit-backdrop-filter:blur(32px);backdrop-filter:blur(32px);background:#0f0a0dbf;border:1px solid #c9a84c40;border-radius:28px;width:calc(100% - 40px);max-width:400px;padding:32px 28px;position:relative;box-shadow:0 -4px 60px #0006,inset 0 1px #ffffff12}.auth-tabs{background:#ffffff0f;border:1px solid #c9a84c26;border-radius:14px;margin-bottom:22px;padding:4px;display:flex}.auth-tabs button{color:var(--text2);cursor:pointer;background:0 0;border:none;border-radius:11px;flex:1;width:auto;padding:10px;font-family:inherit;font-size:15px;transition:all .25s}.auth-tabs button.active{color:var(--gold-light);background:linear-gradient(135deg,#c9a84c2e,#c0607a26);border:1px solid #c9a84c4d;font-weight:600}.auth-card input{width:100%;color:var(--text);background:#ffffff0f;border:1px solid #c9a84c33;border-radius:14px;outline:none;margin-bottom:12px;padding:14px 16px;font-family:inherit;font-size:15px;transition:border-color .2s}.auth-card input::placeholder{color:var(--text3)}.auth-card input:focus{border-color:var(--gold);background:#ffffff14}.auth-error{color:#f08090;text-align:center;margin-bottom:12px;font-size:13px}.auth-btn{color:#1a1008;cursor:pointer;letter-spacing:1px;background:linear-gradient(135deg,#8b6914,#c9a84c,#f0d080);border:none;border-radius:16px;width:100%;padding:16px;font-size:16px;font-weight:700;transition:opacity .2s,transform .15s;box-shadow:0 4px 24px #c9a84c66}.auth-btn:hover:not(:disabled){opacity:.92;transform:translateY(-1px)}.auth-btn:disabled{opacity:.4;cursor:not-allowed}.auth-note{text-align:center;color:var(--text3);letter-spacing:.5px;margin-top:16px;font-size:12px}.setup-page{background:var(--bg2);min-height:100vh;padding:20px 16px}.setup-card{border:1px solid var(--border);background:#ffffff0a;border-radius:24px;max-width:480px;margin:0 auto;padding:28px 24px}.setup-card h2{background:linear-gradient(135deg, var(--gold), var(--gold-light));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:4px;font-family:Noto Serif SC,serif;font-size:22px}.setup-card>p{color:var(--text2);margin-bottom:24px;font-size:14px}.form-group{margin-bottom:16px}.form-group label{color:var(--text2);letter-spacing:.8px;text-transform:uppercase;margin-bottom:6px;font-size:11px;display:block}.form-row{gap:12px;display:flex}.form-row .form-group{flex:1}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--border);width:100%;color:var(--text);background:#ffffff0d;border-radius:12px;outline:none;padding:12px 14px;font-family:inherit;font-size:15px;transition:border-color .2s}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text3)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--gold)}.form-group select option{background:var(--bg2)}.gender-btns{gap:12px;display:flex}.gender-btns button{border:1px solid var(--border);cursor:pointer;width:auto;color:var(--text2);background:#ffffff0a;border-radius:12px;flex:1;padding:12px;font-family:inherit;font-size:15px;transition:all .2s}.gender-btns button.active{border-color:var(--gold);color:var(--gold);background:#c9a84c1a;font-weight:600}.save-btn{background:linear-gradient(135deg, var(--gold-dark), var(--gold), var(--gold-light));color:#1a1008;cursor:pointer;border:none;border-radius:14px;width:100%;margin-top:8px;padding:15px;font-size:16px;font-weight:700;box-shadow:0 4px 20px #c9a84c4d}.browse-wrap{flex-direction:column;justify-content:center;align-items:center;gap:14px;height:calc(100vh - 130px);padding:12px 16px 0;display:flex}.swipe-card{border-radius:26px;flex-direction:column;flex:1;width:100%;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 60px #0009,0 0 0 1px #c9a84c26}.swipe-card.anim-like{opacity:0;transform:translate(60px)rotate(6deg)scale(.96)}.swipe-card.anim-skip{opacity:0;transform:translate(-60px)rotate(-6deg)scale(.96)}.swipe-photo{background-color:#1a1018;background-position:50%;background-size:cover;flex:1;min-height:0;position:relative}.swipe-rank{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);letter-spacing:.5px;opacity:.85;background:#0f0a0da6;border:1px solid;border-radius:20px;padding:5px 14px;font-size:12px;font-weight:700;position:absolute;top:16px;right:16px}.swipe-overlay{background:linear-gradient(#0000,#0a050ad1 40%,#0a050af5);padding:48px 22px 22px;position:absolute;bottom:0;left:0;right:0}.swipe-name{color:#fff;align-items:baseline;gap:10px;margin-bottom:4px;font-family:Noto Serif SC,serif;font-size:30px;font-weight:700;line-height:1.2;display:flex}.swipe-age{color:#ffffffb3;font-family:Inter,sans-serif;font-size:18px;font-weight:400}.swipe-occ{color:#f0d080e6;margin-bottom:10px;font-size:14px;font-weight:500}.swipe-tags{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.swipe-tags span{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fffc;background:#ffffff1f;border:1px solid #ffffff26;border-radius:20px;padding:4px 12px;font-size:12px}.swipe-bio{color:#fff9;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;font-style:italic;line-height:1.6;display:-webkit-box;overflow:hidden}.swipe-actions{background:#0f0a0df7;justify-content:center;gap:20px;padding:14px 24px 18px;display:flex}.btn-skip,.btn-like{cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;width:auto;padding:0;transition:transform .2s;display:flex}.btn-skip:hover,.btn-like:hover{transform:scale(1.12)}.btn-skip span,.btn-like span{border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:28px;transition:all .2s;display:flex}.btn-skip span{color:#fff9;background:#ffffff12;border:2px solid #ffffff26}.btn-like span{background:linear-gradient(135deg, var(--rose-dark), var(--rose));color:#fff;border:2px solid #c0607a66;box-shadow:0 4px 20px #c0607a80}.btn-skip:hover span{background:#ffffff1f}.btn-like:hover span{box-shadow:0 6px 28px #c0607ab3}.btn-skip small,.btn-like small{color:var(--text3);letter-spacing:.5px;font-size:11px}.browse-progress{align-items:center;gap:6px;display:flex}.progress-dot{background:#ffffff26;border-radius:3px;width:6px;height:6px;transition:all .3s}.progress-dot.active{background:var(--gold);width:20px}.progress-dot.done{background:#c9a84c59}.empty-browse{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:calc(100vh - 180px);padding:40px;display:flex}.empty-icon{opacity:.6;margin-bottom:20px;font-size:64px}.empty-browse h3{color:var(--text2);margin-bottom:8px;font-size:20px}.empty-browse p{color:var(--text3);font-size:14px}.messages-page{padding:20px 16px}.contacts-list h2{color:var(--text);margin-bottom:20px;font-size:20px}.contact-item{cursor:pointer;border:1px solid var(--border);background:#ffffff0a;border-radius:16px;align-items:center;gap:14px;margin-bottom:10px;padding:14px 16px;transition:background .2s;display:flex}.contact-item:hover{background:#ffffff12}.contact-avatar{font-size:34px}.contact-arrow{color:var(--text3);font-size:20px}.chat-view{flex-direction:column;height:calc(100vh - 130px);display:flex}.chat-header{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 16px;font-size:16px;font-weight:600;display:flex}.chat-header button{cursor:pointer;color:var(--gold);background:0 0;border:none;width:auto;padding:0;font-size:24px}.chat-messages{flex-direction:column;flex:1;gap:10px;padding:16px;display:flex;overflow-y:auto}.msg{display:flex}.msg.mine{justify-content:flex-end}.msg.theirs{justify-content:flex-start}.msg-bubble{border-radius:18px;max-width:72%;padding:10px 15px;font-size:15px;line-height:1.5}.msg.mine .msg-bubble{background:linear-gradient(135deg, var(--rose-dark), var(--rose));color:#fff;border-bottom-right-radius:4px}.msg.theirs .msg-bubble{color:var(--text);border:1px solid var(--border);background:#ffffff14;border-bottom-left-radius:4px}.chat-input{border-top:1px solid var(--border);background:#0f0a0de6;gap:8px;padding:12px 16px;display:flex}.chat-input input{border:1px solid var(--border);color:var(--text);background:#ffffff12;border-radius:24px;outline:none;flex:1;padding:12px 16px;font-family:inherit;font-size:15px}.chat-input input:focus{border-color:var(--gold)}.chat-input button{background:linear-gradient(135deg, var(--gold-dark), var(--gold));color:#1a1008;cursor:pointer;border:none;border-radius:24px;width:auto;padding:12px 18px;font-size:14px;font-weight:700}.invite-btn{cursor:pointer;background:0 0;border:none;width:auto;padding:0 4px;font-size:22px}.date-invite-panel{background:var(--bg2);border-top:1px solid var(--border);max-height:220px;padding:14px 16px;overflow-y:auto}.date-invite-panel p{color:var(--text2);letter-spacing:.5px;text-transform:uppercase;margin-bottom:10px;font-size:12px}.invite-option{cursor:pointer;color:var(--text);border:1px solid var(--border);background:#ffffff0d;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:10px 14px;font-size:14px;transition:background .2s;display:flex}.invite-option:hover{border-color:var(--gold);background:#c9a84c1a}.cancel-btn{width:100%;color:var(--text2);border:1px solid var(--border);cursor:pointer;background:#ffffff0d;border-radius:12px;margin-top:6px;padding:10px;font-family:inherit;font-size:14px}.restaurants-page{padding:0}.restaurants-hero{border-bottom:1px solid var(--border);background:linear-gradient(#c9a84c14 0%,#0000 100%);padding:24px 20px 20px}.restaurants-hero h2{color:var(--text);margin-bottom:4px;font-family:Noto Serif SC,serif;font-size:22px}.restaurants-hero p{color:var(--text2);font-size:13px}.restaurant-list{flex-direction:column;gap:14px;padding:16px;display:flex}.restaurant-card{border:1px solid var(--border);background:#ffffff0a;border-radius:20px;transition:border-color .2s,transform .2s;overflow:hidden}.restaurant-card:hover{border-color:#c9a84c66;transform:translateY(-2px)}.restaurant-cover{justify-content:center;align-items:center;height:140px;font-size:56px;display:flex;position:relative;overflow:hidden}.restaurant-cover.premium{background:linear-gradient(135deg,#1a0f10,#2a1520,#1a0f10)}.restaurant-cover.normal{background:linear-gradient(135deg,#0f1018,#1a1520,#0f1018)}.restaurant-cover.michelin{background:linear-gradient(135deg,#10180f,#1a2010,#10180f)}.restaurant-body{padding:16px 18px}.restaurant-header{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.restaurant-info h3{color:var(--text);font-size:16px;font-weight:600}.restaurant-addr{color:var(--text3);margin-top:2px;font-size:12px}.call-btn{white-space:nowrap;background:linear-gradient(135deg, var(--gold-dark), var(--gold));color:#1a1008;border-radius:10px;flex-shrink:0;margin-left:12px;padding:8px 16px;font-size:13px;font-weight:600;text-decoration:none;display:block}.restaurant-desc{color:var(--text2);margin-bottom:12px;font-size:13px;line-height:1.6}.restaurant-packages{flex-direction:column;gap:6px;display:flex}.restaurant-package{color:var(--text2);background:#c9a84c0f;border:1px solid #c9a84c26;border-radius:10px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;display:flex}.package-price{color:var(--gold);font-size:15px;font-weight:700}.partner-cta{border:1px solid var(--border);text-align:center;background:#c9a84c0f;border-radius:16px;margin:0 16px 24px;padding:20px}.partner-cta p{color:var(--gold);font-size:14px}.partner-cta p:last-child{color:var(--text3);margin-top:6px;font-size:12px}.rank-badge{letter-spacing:.5px;border:1px solid #c9a84c4d;border-radius:20px;margin:10px 0 16px;padding:7px 20px;font-size:14px;font-weight:700;display:inline-block;box-shadow:0 0 20px #c9a84c33}.rank-progress-bar{width:100%;margin:14px 0}.rank-progress-labels{color:var(--text2);justify-content:space-between;margin-bottom:8px;font-size:11px;display:flex}.rank-bar{background:#ffffff14;border-radius:10px;height:6px;overflow:hidden}.rank-bar-fill{background:linear-gradient(90deg, var(--gold-dark), var(--gold), var(--gold-light));border-radius:10px;height:100%;transition:width .8s cubic-bezier(.4,0,.2,1)}.rank-stats{border:1px solid var(--border);border-radius:16px;margin-top:24px;display:flex;overflow:hidden}.stat-item{text-align:center;border-right:1px solid var(--border);flex:1;padding:16px 0}.stat-item:last-child{border-right:none}.stat-num{color:var(--gold);font-size:18px;font-weight:700}.stat-label{color:var(--text3);letter-spacing:.5px;text-transform:uppercase;margin-top:4px;font-size:10px}.my-profile{text-align:center;padding:40px 20px}.profile-avatar{filter:drop-shadow(0 4px 20px #00000080);margin-bottom:14px;font-size:72px}.my-profile h2{margin-bottom:4px;font-size:24px;font-weight:600}.profile-tags{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:14px;display:flex}.profile-tags span{color:var(--text2);background:#ffffff0f;border:1px solid #ffffff14;border-radius:20px;padding:5px 12px;font-size:12px}.profile-bio{color:var(--text2);max-width:300px;margin-top:16px;margin-left:auto;margin-right:auto;font-size:14px;font-style:italic;line-height:1.7}.admin-page{padding:16px}.admin-page h2{color:var(--text);margin-bottom:16px;font-size:20px}.admin-tabs{gap:8px;margin-bottom:20px;display:flex}.admin-tabs button{border:1px solid var(--border);cursor:pointer;width:auto;color:var(--text2);background:#ffffff0a;border-radius:10px;flex:1;padding:10px;font-family:inherit;font-size:14px}.admin-tabs button.active{border-color:var(--gold);color:var(--gold);background:#c9a84c14;font-weight:600}.admin-form{border:1px solid var(--border);background:#ffffff08;border-radius:16px;margin-bottom:20px;padding:16px}.admin-form h3{color:var(--gold);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;font-size:14px}.admin-form input,.admin-form select{border:1px solid var(--border);width:100%;color:var(--text);background:#ffffff0f;border-radius:10px;outline:none;margin-bottom:8px;padding:10px 12px;font-family:inherit;font-size:14px}.admin-form input::placeholder{color:var(--text3)}.admin-form select option{background:var(--bg2)}.admin-form button{background:linear-gradient(135deg, var(--gold-dark), var(--gold));color:#1a1008;cursor:pointer;border:none;border-radius:12px;width:100%;padding:12px;font-family:inherit;font-size:15px;font-weight:700}.admin-list{flex-direction:column;gap:10px;display:flex}.admin-item{border:1px solid var(--border);background:#ffffff0a;border-radius:14px;padding:14px}.admin-item strong{color:var(--text);font-size:15px}.admin-item p{color:var(--text2);margin:4px 0;font-size:13px}.admin-tag{color:var(--gold);background:#c9a84c1a;border:1px solid #c9a84c33;border-radius:8px;margin-left:6px;padding:2px 8px;font-size:11px;display:inline-block}.admin-tag.price{color:var(--rose-light);background:#c0607a1a;border-color:#c0607a33}.admin-actions{gap:8px;margin-top:10px;display:flex}.small-btn{border:1px solid var(--border);cursor:pointer;width:auto;color:var(--text2);background:#ffffff0d;border-radius:8px;padding:6px 14px;font-family:inherit;font-size:12px}.small-btn.danger{color:var(--rose-light);background:#c0607a14;border-color:#c0607a66}.small-btn.success{color:#80c880;background:#64c86414;border-color:#64c86466}.restaurant-cover{position:relative}.restaurant-cover-emoji{font-size:56px}.hotness-badge{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--gold-light);letter-spacing:.3px;background:#0f0a0dbf;border:1px solid #c9a84c4d;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:600;position:absolute;top:10px;right:10px}.profile-hero{text-align:center;padding:32px 20px 16px}.profile-name{margin-bottom:10px;font-size:24px;font-weight:600}.profile-progress-wrap{cursor:pointer;padding:0 20px 16px}.progress-hint{color:var(--text3);text-align:right;margin-top:6px;font-size:11px}.profile-user-tags{flex-wrap:wrap;justify-content:center;gap:8px;padding:0 20px 16px;display:flex}.user-tag{color:var(--gold);background:#c9a84c1a;border:1px solid #c9a84c40;border-radius:20px;padding:5px 14px;font-size:13px}.profile-actions{gap:12px;margin-top:4px;padding:20px 20px 0;display:flex}.profile-edit-btn,.profile-date-btn{cursor:pointer;border-radius:14px;flex:1;width:auto;padding:13px;font-family:inherit;font-size:14px;font-weight:600;transition:all .2s}.profile-edit-btn{border:1px solid var(--border);color:var(--text2);background:#ffffff0f}.profile-edit-btn:hover{border-color:var(--gold);color:var(--gold)}.profile-date-btn{background:linear-gradient(135deg, var(--gold-dark), var(--gold));color:#1a1008;border:none;box-shadow:0 4px 16px #c9a84c4d}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding-bottom:env(safe-area-inset-bottom,0);background:#000000bf;justify-content:center;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.match-modal{text-align:center;background:linear-gradient(#1a1018 0%,#0f0a0d 100%);border:1px solid #c9a84c4d;border-radius:28px 28px 0 0;width:100%;max-width:480px;padding:36px 28px 40px;animation:.35s cubic-bezier(.34,1.56,.64,1) slideUp}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.match-hearts{margin-bottom:10px;font-size:52px;animation:.8s ease-in-out infinite alternate heartbeat}@keyframes heartbeat{0%{transform:scale(1)}to{transform:scale(1.15)}}.match-title{background:linear-gradient(135deg, var(--gold), var(--rose-light));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:8px;font-family:Noto Serif SC,serif;font-size:28px;font-weight:700}.match-sub{color:var(--text2);margin-bottom:20px;font-size:15px}.match-sub strong{color:var(--text)}.match-avatars{justify-content:center;gap:8px;margin-bottom:12px;font-size:52px;display:flex}.match-avatar,.match-avatar-other{border:2px solid var(--border);background:#ffffff0f;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;font-size:38px;display:flex}.match-info{justify-content:center;gap:8px;margin-bottom:24px;display:flex}.match-info span{color:var(--text2);background:#ffffff12;border-radius:20px;padding:4px 12px;font-size:13px}.match-btn-primary{background:linear-gradient(135deg, var(--rose-dark), var(--rose));color:#fff;cursor:pointer;border:none;border-radius:16px;width:100%;margin-bottom:10px;padding:15px;font-size:16px;font-weight:700;box-shadow:0 4px 20px #c0607a66}.match-btn-secondary{border:1px solid var(--border);width:100%;color:var(--text2);cursor:pointer;background:0 0;border-radius:16px;padding:12px;font-family:inherit;font-size:14px}.rank-guide-modal{background:linear-gradient(#1a1018 0%,#0f0a0d 100%);border:1px solid #c9a84c40;border-radius:28px 28px 0 0;width:100%;max-width:480px;max-height:85vh;padding:28px 24px 40px;animation:.3s cubic-bezier(.34,1.56,.64,1) slideUp;position:relative;overflow-y:auto}.modal-close{width:32px;height:32px;color:var(--text2);cursor:pointer;background:#ffffff12;border:none;border-radius:50%;width:32px;font-size:14px;position:absolute;top:16px;right:16px}.rank-guide-title{text-align:center;background:linear-gradient(135deg, var(--gold), var(--gold-light));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:20px;font-family:Noto Serif SC,serif;font-size:18px;font-weight:700}.rank-route{justify-content:center;align-items:center;gap:16px;margin-bottom:16px;display:flex}.rank-node{flex-direction:column;align-items:center;gap:4px;display:flex}.rank-node-emoji{font-size:28px}.rank-node span:last-child{font-size:13px;font-weight:600}.rank-node.current span:last-child{opacity:.8}.rank-arrow{color:var(--text3);font-size:20px}.rank-guide-progress{margin-bottom:4px}.rank-guide-bar{background:#ffffff14;border-radius:8px;height:8px;margin-bottom:8px;overflow:hidden}.rank-guide-fill{background:linear-gradient(90deg, var(--gold-dark), var(--gold), var(--gold-light));border-radius:8px;height:100%;transition:width .8s}.rank-guide-exp{color:var(--text2);text-align:center;font-size:13px}.rank-guide-exp strong{color:var(--gold)}.rank-divider{border:none;border-top:1px solid var(--border);margin:16px 0}.rank-section-title{color:var(--text2);letter-spacing:.5px;margin-bottom:12px;font-size:13px;font-weight:600}.rank-tasks{flex-direction:column;gap:8px;display:flex}.rank-task{border:1px solid var(--border);background:#ffffff0a;border-radius:12px;align-items:center;gap:10px;padding:10px 14px;display:flex}.task-check{font-size:16px}.task-name{color:var(--text);flex:1;font-size:14px}.task-exp{color:var(--gold);font-size:13px;font-weight:600}.rank-privileges{flex-direction:column;gap:6px;padding-left:0;list-style:none;display:flex}.rank-privileges li{color:var(--text2);padding-left:16px;font-size:14px;position:relative}.rank-privileges li:before{content:"•";color:var(--gold);position:absolute;left:0}.rank-guide-btns{gap:10px;margin-top:20px;display:flex}.rank-btn-date{background:linear-gradient(135deg, var(--gold-dark), var(--gold));color:#1a1008;cursor:pointer;border:none;border-radius:14px;flex:1;padding:13px;font-family:inherit;font-size:15px;font-weight:700}.rank-btn-close{border:1px solid var(--border);color:var(--text2);cursor:pointer;background:#ffffff0f;border-radius:14px;flex:1;padding:13px;font-family:inherit;font-size:15px}.date-banner{border-bottom:1px solid var(--border);background:#c9a84c0f;margin:0;padding:12px 16px}.date-banner.confirmed{background:#64c8640f}.date-banner-info{align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.date-banner-icon{flex-shrink:0;margin-top:2px;font-size:22px}.date-banner-title{color:var(--text);font-size:14px;font-weight:600}.date-banner-detail{color:var(--text2);margin-top:2px;font-size:12px}.date-banner-btns{gap:8px;display:flex}.date-accept{background:linear-gradient(135deg, var(--gold-dark), var(--gold));color:#1a1008;cursor:pointer;border:none;border-radius:10px;flex:1;padding:9px;font-family:inherit;font-size:14px;font-weight:700}.date-decline{border:1px solid var(--border);color:var(--text2);cursor:pointer;background:#ffffff0f;border-radius:10px;flex:1;padding:9px;font-family:inherit;font-size:14px}.date-done{color:#80c880;cursor:pointer;background:#64c86426;border:1px solid #64c8644d;border-radius:10px;width:100%;padding:9px;font-family:inherit;font-size:14px;font-weight:600}.rating-modal{text-align:center;background:linear-gradient(#1a1018 0%,#0f0a0d 100%);border:1px solid #c9a84c40;border-radius:28px 28px 0 0;width:100%;max-width:480px;padding:32px 28px 44px;animation:.3s cubic-bezier(.34,1.56,.64,1) slideUp}.rating-title{background:linear-gradient(135deg, var(--gold), var(--gold-light));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:8px;font-family:Noto Serif SC,serif;font-size:20px;font-weight:700}.rating-sub{color:var(--text2);margin-bottom:20px;font-size:14px}.rating-sub strong{color:var(--text)}.rating-stars{justify-content:center;gap:8px;margin-bottom:10px;display:flex}.star-btn{cursor:pointer;filter:grayscale()opacity(.4);background:0 0;border:none;width:auto;padding:4px;font-size:28px;transition:transform .2s}.star-btn.active{filter:none;transform:scale(1.15)}.rating-label{color:var(--text2);min-height:24px;margin-bottom:16px;font-size:15px}.rating-comment{border:1px solid var(--border);width:100%;color:var(--text);resize:none;background:#ffffff0d;border-radius:12px;outline:none;margin-bottom:16px;padding:12px 14px;font-family:inherit;font-size:14px}.rating-comment:focus{border-color:var(--gold)}.rating-btns{gap:10px;display:flex}.rating-submit{background:linear-gradient(135deg, var(--gold-dark), var(--gold));color:#1a1008;cursor:pointer;border:none;border-radius:14px;flex:2;padding:14px;font-family:inherit;font-size:15px;font-weight:700;transition:opacity .2s}.rating-submit:disabled{opacity:.4;cursor:not-allowed}.rating-skip{border:1px solid var(--border);color:var(--text2);cursor:pointer;background:#ffffff0f;border-radius:14px;flex:1;padding:14px;font-family:inherit;font-size:14px}.tag-selector{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.tag-option{cursor:pointer;border:1px solid var(--border);width:auto;color:var(--text2);background:#ffffff0d;border-radius:20px;padding:7px 14px;font-family:inherit;font-size:13px;transition:all .2s}.tag-option.selected{border-color:var(--gold);color:var(--gold);background:#c9a84c1f;font-weight:500}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}@media (width<=380px){.auth-title{font-size:36px}.auth-card{padding:28px 22px}.swipe-name{font-size:26px}.match-modal,.rank-guide-modal,.rating-modal{padding:24px 20px 36px}}
