:root{--bg: #fff8f2;--surface: #ffffff;--surface2: #fff3e8;--border: #f0ddd0;--border-mid: #e4c8b4;--coral: #ff6b6b;--coral-dim: rgba(255, 107, 107, .12);--coral-glow: rgba(255, 107, 107, .35);--yellow: #ffd166;--yellow-dim: rgba(255, 209, 102, .18);--yellow-glow: rgba(255, 209, 102, .5);--mint: #2ec4b6;--mint-dim: rgba(46, 196, 182, .12);--mint-glow: rgba(46, 196, 182, .35);--text: #2c2420;--text-muted: #a08878;--text-dim: #d4bcb0}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Nunito,sans-serif;background:transparent;color:var(--text);min-height:100vh}input,select,button,textarea{font-family:Nunito,sans-serif}.center-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:10px;padding:24px;position:relative;overflow:hidden}h1{font-family:Fredoka,sans-serif;font-size:5rem;font-weight:700;letter-spacing:-1px;color:var(--text);line-height:1;animation:fadeUp .5s ease both}h2{font-family:Fredoka,sans-serif;font-size:1.7rem;font-weight:600;color:var(--text);animation:fadeUp .5s ease both}.tagline{font-family:Fredoka,sans-serif;font-size:1.4rem;font-weight:500;color:var(--coral);letter-spacing:3px;margin-top:-4px;animation:fadeUp .5s .07s ease both}.subtitle{font-size:.85rem;color:var(--text-muted);animation:fadeUp .5s .14s ease both}.field-label{font-size:.75rem;font-weight:700;color:var(--text-muted);letter-spacing:.5px}.form-card{display:flex;flex-direction:column;gap:10px;width:100%;max-width:280px;margin-top:14px;animation:fadeUp .5s .21s ease both}input,select{padding:11px 14px;font-size:.95rem;background:var(--surface);border:2px solid var(--border);border-radius:12px;color:var(--text);width:100%;outline:none;transition:border-color .2s,box-shadow .2s;font-weight:600}input:focus,select:focus{border-color:var(--coral);box-shadow:0 0 0 4px var(--coral-dim)}input::placeholder{color:var(--text-dim);font-weight:400}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23a08878' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;cursor:pointer}select option{background:var(--surface);color:var(--text)}select.placeholder{color:var(--text-dim);font-weight:400}select:disabled{opacity:.55;cursor:not-allowed;background-image:none}button{padding:12px 18px;font-size:.95rem;font-weight:700;border:none;border-radius:12px;background:var(--coral);color:#fff;cursor:pointer;letter-spacing:.3px;transition:transform .12s,box-shadow .15s,background .15s}button:hover{transform:translateY(-2px);box-shadow:0 6px 22px var(--coral-glow)}button:active{transform:scale(.97)}button:disabled{background:var(--border);color:var(--text-dim);cursor:not-allowed;box-shadow:none;transform:none}.library-list{display:flex;flex-direction:column;gap:8px;width:100%;max-width:360px;margin-top:18px;animation:fadeUp .5s .1s ease both}.library-btn{background:var(--surface);color:var(--text);border:2px solid var(--border);text-align:left;font-size:.9rem;font-weight:600;padding:14px 18px;border-radius:14px;transition:border-color .15s,box-shadow .15s,transform .12s}.library-btn:hover{border-color:var(--coral);box-shadow:0 4px 20px var(--coral-glow);transform:translateY(-2px);background:var(--surface);color:var(--text);opacity:1}.libsel-page{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 20px 72px;position:relative;overflow:hidden;font-family:Nunito,sans-serif}.libsel-idle{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:340px;width:100%;text-align:center;animation:fadeUp .5s ease both}.libsel-map-art{width:260px;height:190px;border-radius:20px;box-shadow:0 6px 28px #2c242017,0 2px 8px #2c24200d;flex-shrink:0}.libsel-title{font-family:Fredoka,sans-serif;font-size:1.8rem;font-weight:600;color:var(--text);line-height:1.2;margin:0}.libsel-sub{font-size:.88rem;color:var(--text-muted);line-height:1.55;margin:0}.libsel-location-btn{display:flex;align-items:center;gap:8px;background:var(--coral);color:#fff;font-family:Nunito,sans-serif;font-weight:700;font-size:.95rem;letter-spacing:.3px;border:none;border-radius:14px;padding:13px 24px;cursor:pointer;margin-top:4px;transition:transform .12s ease,box-shadow .12s ease}.libsel-location-btn:hover{transform:translateY(-2px);box-shadow:0 6px 22px var(--coral-glow)}.libsel-location-btn:active{transform:scale(.97)}.libsel-loading-row{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:.88rem;margin-top:4px}.libsel-spinner{display:flex;gap:5px}.libsel-spinner-dot{width:7px;height:7px;border-radius:50%;background:var(--coral);animation:dotPulse 1s ease-in-out infinite}@keyframes dotPulse{0%,80%,to{transform:scale(.7);opacity:.4}40%{transform:scale(1);opacity:1}}.libsel-denied-icon{font-size:48px;opacity:.6}.libsel-list-wrap{width:100%;max-width:400px;display:flex;flex-direction:column;gap:0}.libsel-list-header{display:flex;align-items:center;gap:12px;padding:0 4px 18px;animation:fadeUp .4s ease both}.libsel-list-pin{font-size:24px}.libsel-list-title{font-family:Fredoka,sans-serif;font-size:1.4rem;font-weight:600;color:var(--text);margin:0}.libsel-list-sub{font-size:.82rem;color:var(--text-muted);margin:0}.libsel-group{margin-bottom:20px;animation:fadeUp .45s ease both}.libsel-group-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;padding:0 2px}.libsel-group-badge{color:#fff;font-family:Fredoka,sans-serif;font-size:.8rem;font-weight:600;letter-spacing:.5px;padding:3px 10px;border-radius:20px;flex-shrink:0}.libsel-group-name{font-size:.78rem;font-weight:600;color:var(--text-muted);letter-spacing:.2px}.libsel-card{width:100%;display:flex;align-items:center;gap:12px;background:var(--surface);border:2px solid var(--border);border-radius:14px;padding:13px 16px;margin-bottom:7px;cursor:pointer;text-align:left;font-family:Nunito,sans-serif;transition:border-color .13s,box-shadow .13s,transform .12s;animation:fadeUp .45s ease both;position:relative;overflow:hidden}.libsel-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--card-accent);border-radius:0 2px 2px 0;opacity:0;transition:opacity .13s}.libsel-card:hover{border-color:var(--card-accent, var(--coral));box-shadow:0 4px 18px #00000012;transform:translateY(-2px)}.libsel-card:hover:before{opacity:1}.libsel-card:active{transform:scale(.98)}.libsel-card-row{display:flex;align-items:stretch;gap:6px;margin-bottom:7px;animation:fadeUp .45s ease both}.libsel-card-row .libsel-card{flex:1;margin-bottom:0;animation:none}.libsel-card-edit{flex-shrink:0;width:42px;background:var(--surface);border:2px solid var(--border);border-radius:14px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-muted);transition:border-color .13s,color .13s,box-shadow .13s}.libsel-card-edit:hover{border-color:var(--yellow);color:var(--text);box-shadow:0 4px 14px var(--yellow-glow);transform:none}.libsel-card--far{opacity:.45;cursor:not-allowed;pointer-events:auto}.libsel-card--far:hover{transform:none;box-shadow:none;border-color:var(--border)}.libsel-card--far .libsel-card-dist{background:var(--surface2);color:var(--text-dim)}.libsel-card-icon{color:var(--text-muted);flex-shrink:0;display:flex;align-items:center}.libsel-card-name{flex:1;font-size:.9rem;font-weight:700;color:var(--text)}.libsel-card-dist{font-size:.75rem;font-weight:700;color:var(--text-muted);background:var(--surface2);border-radius:20px;padding:3px 9px;flex-shrink:0}.libsel-empty{text-align:center;padding:32px 16px;color:var(--text-muted);display:flex;flex-direction:column;align-items:center;gap:10px;font-size:.9rem;line-height:1.5}.libsel-admin-btn{position:fixed;bottom:20px;right:20px;background:transparent;border:1.5px solid var(--border);border-radius:50%;width:36px;height:36px;font-size:15px;color:var(--text-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .13s,border-color .13s;z-index:10}.libsel-admin-btn:hover{color:var(--text-muted);border-color:var(--border-mid);transform:none;box-shadow:none}.libsel-settings-wrap{position:fixed;bottom:18px;right:18px;z-index:20;height:46px;display:flex;align-items:center}.libsel-settings-menu--up{bottom:calc(100% + 10px);right:0;left:auto}.libsel-settings-pill{position:static;display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:999px;background:#f8f6f0eb;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.65);box-shadow:0 6px 24px #0000002e;color:#4a4038;cursor:pointer;transition:background .15s,color .15s;padding:0}.libsel-settings-pill:hover{background:var(--coral-dim);color:var(--coral);transform:none;box-shadow:0 2px 16px #0000001a}.vote-pill-wrap{position:fixed;left:max(16px,calc(50vw - 480px));top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:50}.vote-pill-question{font-family:Nunito,sans-serif;font-size:.72rem;font-weight:700;color:var(--text-muted);line-height:1.3;text-align:center;max-width:110px;letter-spacing:.1px}.vote-pill{background:var(--coral);color:#fff8f2;font-family:Fredoka,sans-serif;font-weight:700;font-size:1.1rem;letter-spacing:.5px;border:none;border-radius:999px;padding:9px 22px;cursor:pointer;box-shadow:0 6px 20px var(--coral-glow);transform:rotate(-8deg);animation:votePulse 2.8s ease-in-out infinite;transition:transform .26s cubic-bezier(.2,1.6,.4,1),box-shadow .26s ease;white-space:nowrap}.vote-pill:hover{transform:rotate(-8deg) scale(1.14);box-shadow:0 10px 30px var(--coral-glow)}.vote-pill:active{transform:rotate(-8deg) scale(.95)}.vote-pill--done{background:var(--coral-dim);border:2px solid var(--coral);color:var(--coral);font-family:Fredoka,sans-serif;font-weight:700;font-size:.92rem;border-radius:999px;padding:8px 18px;transform:rotate(-8deg);animation:none;cursor:default;white-space:nowrap}.vote-options-pill{background:var(--surface);border:2px solid var(--border-mid);border-radius:20px;padding:7px;display:flex;flex-direction:column;gap:5px;box-shadow:0 8px 28px var(--coral-glow),0 2px 8px #2c24200f;animation:expandPill .22s cubic-bezier(.34,1.56,.64,1) both}.vote-option-btn{background:transparent;border:2px solid var(--border-mid);color:var(--text);font-family:Fredoka,sans-serif;font-weight:600;font-size:.97rem;border-radius:13px;padding:8px 20px;cursor:pointer;transition:background .14s,border-color .14s,color .14s,transform .12s;white-space:nowrap;text-align:left}.vote-option-btn:hover{background:var(--coral-dim);border-color:var(--coral);color:var(--coral);transform:translate(4px)}.vote-option-btn:active{transform:scale(.97)}@keyframes votePulse{0%,to{box-shadow:0 6px 20px var(--coral-glow);transform:rotate(-8deg) scale(1)}50%{box-shadow:0 8px 28px var(--coral-glow);transform:rotate(-8deg) scale(1.04)}}@keyframes expandPill{0%{opacity:0;transform:scale(.8) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.libsel-footer{position:fixed;bottom:18px;left:18px;height:46px;display:flex;align-items:center;font-family:Nunito,sans-serif;font-size:.72rem;font-weight:600;color:var(--text-dim);letter-spacing:.2px;pointer-events:none;z-index:5}.library-view{height:100dvh;display:flex;flex-direction:column;overflow:hidden;position:relative}.lib-glass{background:#f8f6f0e0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.62);box-shadow:0 2px 16px #00000012}.lib-topbar-row{position:absolute;top:14px;left:0;right:0;z-index:30;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:8px;padding:0 70px;pointer-events:none}.lib-topbar-row>*{pointer-events:auto}.lib-topbar-row>.lib-topbar{grid-column:2}.lib-topbar-row>.advice-pill{grid-column:3;justify-self:start;align-self:center}.lib-topbar{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:999px;background:#f8f6f0e6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.65);box-shadow:0 2px 18px #00000014;width:auto;max-width:calc(92vw - 46px)}.lib-topbar-left{display:flex;align-items:center;gap:8px;flex-shrink:0}.lib-topbar-name{font-family:Fredoka,sans-serif;font-size:.92rem;font-weight:600;color:var(--text);white-space:nowrap}.lib-topbar-center{flex:1;min-width:0}.lib-topbar-search{display:flex;align-items:center;gap:7px;background:#0000000d;border-radius:999px;padding:6px 12px;border:1px solid rgba(0,0,0,.06);transition:border-color .15s,box-shadow .15s}.lib-topbar-search:focus-within{border-color:var(--coral);box-shadow:0 0 0 3px var(--coral-dim)}.lib-search-icon{color:#00000052;flex-shrink:0}.lib-topbar-input{flex:1;border:none;background:transparent;font-family:Nunito,sans-serif;font-size:.82rem;font-weight:500;color:var(--text);outline:none;padding:0;width:100%;box-shadow:none}.lib-topbar-input::placeholder{color:#0000004d;font-weight:400}.lib-topbar-input:focus{box-shadow:none;border-color:transparent}.lib-search-clear{background:none;border:none;padding:0 2px;font-size:.7rem;color:var(--text-muted);cursor:pointer;line-height:1;box-shadow:none;transform:none}.lib-search-clear:hover{color:var(--text);transform:none;box-shadow:none}.lib-topbar-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.lib-user-btn{position:absolute;top:16px;right:18px;z-index:30;width:46px;height:46px;border-radius:50%;background:#f8f6f0e6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.65);box-shadow:0 2px 18px #00000014;color:#4a4038;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .15s,color .15s}.lib-user-btn:hover{background:var(--coral-dim);color:var(--coral);transform:none;box-shadow:0 2px 18px #00000014}.lib-user-btn[data-tip]:before{content:attr(data-tip);position:absolute;top:50%;right:calc(100% + 8px);transform:translateY(-50%);background:#2c2420e0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-family:Nunito,sans-serif;font-size:.72rem;font-weight:600;padding:4px 9px;border-radius:8px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s .4s;z-index:50}.lib-user-btn[data-tip]:hover:before{opacity:1}.lib-topbar-online{display:flex;align-items:center;gap:5px;font-size:.78rem;font-weight:600;color:var(--text-muted);white-space:nowrap}.lib-topbar-profile-btn{width:32px;height:32px;border-radius:50%;background:#0000000d;border:1px solid rgba(255,255,255,.6);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .15s,color .15s;box-shadow:none}.lib-topbar-profile-btn:hover{background:var(--coral-dim);color:var(--coral);transform:none;box-shadow:none}.lib-controls{position:absolute;bottom:24px;right:18px;z-index:30;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:auto}.lib-ctrl-btn{position:relative;width:46px;height:46px;border-radius:50%;background:#f8f6f0e6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.65);box-shadow:0 2px 18px #00000014;color:#4a4038;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .15s,color .15s}.lib-ctrl-btn:hover{background:var(--coral-dim);color:var(--coral);box-shadow:0 2px 18px #00000014}.lib-ctrl-btn:active{transform:scale(.93)}.lib-ctrl-btn[data-tip]:before{content:attr(data-tip);position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%);background:#2c2420e0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-family:Nunito,sans-serif;font-size:.72rem;font-weight:600;padding:4px 9px;border-radius:8px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s .4s;z-index:50}.lib-ctrl-btn[data-tip]:hover:before{opacity:1}.lib-ctrl-settings-wrap{position:relative}.lib-settings-menu{position:absolute;bottom:calc(100% + 8px);right:0;background:#f8f6f0f5;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.65);box-shadow:0 4px 20px #0000001f;border-radius:14px;padding:6px;display:flex;flex-direction:column;gap:2px;min-width:170px;animation:fadeUp .15s ease both;z-index:50}.lib-settings-item{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:10px;border:none;background:transparent;color:var(--text);font-family:Nunito,sans-serif;font-size:.82rem;font-weight:600;cursor:pointer;text-align:left;transition:background .12s;box-shadow:none;width:100%}.lib-settings-item:hover{background:var(--surface2);transform:none;box-shadow:none}.lib-settings-item--danger{color:#c0392b}.lib-settings-item--danger:hover{background:#c0392b14}.library-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:2px solid var(--border);background:var(--surface);flex-wrap:wrap;gap:8px;position:sticky;top:0;z-index:10}.library-name{font-family:Fredoka,sans-serif;font-size:1.1rem;font-weight:600;color:var(--text)}.header-right{display:flex;align-items:center;gap:10px}.online-count{font-size:.78rem;font-weight:600;color:var(--text-muted)}.count-num{display:inline-block;animation:countBump .35s cubic-bezier(.34,1.56,.64,1) both}@keyframes countBump{0%{transform:translateY(4px) scale(.8);opacity:0}60%{transform:translateY(-2px) scale(1.08);opacity:1}to{transform:translateY(0) scale(1);opacity:1}}.online-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--mint);margin-right:5px;box-shadow:0 0 7px var(--mint-glow);animation:dotPulse 2s ease infinite}@keyframes dotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.75)}}.user-badge{font-size:.78rem;font-weight:700;background:var(--yellow-dim);color:var(--text);border:2px solid var(--yellow);padding:4px 12px;border-radius:20px}.status-edit-btn{background:var(--surface2);color:var(--text-muted);border:2px solid var(--border);font-size:.75rem;padding:5px 11px;border-radius:10px}.status-edit-btn:hover{border-color:var(--coral);color:var(--coral);background:var(--coral-dim);box-shadow:none;transform:none}.status-bar{display:flex;gap:8px;padding:10px 20px;background:var(--surface2);border-bottom:2px solid var(--border);animation:fadeUp .2s ease both}.status-input{flex:1;font-size:.85rem;padding:8px 12px;border-radius:10px}.status-bar button{width:auto;padding:8px 14px;font-size:.8rem;flex-shrink:0}.status-bar .cancel{background:var(--surface);color:var(--text-muted);border:2px solid var(--border)}.status-bar .cancel:hover{background:var(--border);color:var(--text);box-shadow:none;transform:none}.hint{font-size:.82rem;font-weight:600;color:var(--text-muted);padding:10px 20px 0}.hint strong{color:var(--coral)}.advice-pill{position:relative;flex-shrink:0;width:46px;height:46px;border-radius:50%;background:linear-gradient(155deg,#ffdac8f0,#ffc0b2eb);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.55);box-shadow:0 2px 18px #ff6b6b29;overflow:hidden;cursor:pointer;transition:width .5s cubic-bezier(.16,1,.3,1),height .5s cubic-bezier(.16,1,.3,1),border-radius .5s cubic-bezier(.16,1,.3,1),background .25s ease,border-color .25s ease,box-shadow .3s ease;animation:advicePop .55s cubic-bezier(.34,1.55,.5,1) both}.advice-pill:hover{background:linear-gradient(155deg,#ffcfbcf5,#ffb2a2f0);border-color:#ff6b6b61;box-shadow:0 4px 22px #ff6b6b42}.advice-pill--expanded{width:220px;border-radius:20px;background:linear-gradient(160deg,#ffdecff2,#ffc6b8ed);box-shadow:0 8px 28px #ff6b6b33,0 0 0 1px #ff6b6b2e}.advice-pill-i{position:absolute;top:12px;left:19px;font-style:italic;font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:20px;line-height:1;color:var(--coral);text-shadow:0 1px 3px rgba(255,107,107,.22);-webkit-user-select:none;user-select:none;transition:top .5s cubic-bezier(.16,1,.3,1),left .5s cubic-bezier(.16,1,.3,1),font-size .5s cubic-bezier(.16,1,.3,1),text-shadow .4s ease}.advice-pill--expanded .advice-pill-i{top:14px;left:14px;font-size:13px;text-shadow:none}.advice-pill-text{position:absolute;top:36px;left:14px;width:192px;margin:0;font-family:Fredoka,sans-serif;font-size:14.5px;font-weight:500;color:var(--text);line-height:1.45;letter-spacing:.1px;text-align:center;opacity:0;transform:translateY(4px);transition:opacity .2s ease,transform .2s ease}.advice-pill--expanded .advice-pill-text{opacity:1;transform:translateY(0);transition:opacity .35s ease .32s,transform .4s cubic-bezier(.16,1,.3,1) .28s}@keyframes advicePop{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.toast-container{position:fixed;bottom:24px;left:0;right:0;margin:0 auto;width:fit-content;max-width:calc(100vw - 40px);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:9999;pointer-events:none}.toast{background:var(--text);color:#fff;padding:10px 14px 10px 20px;border-radius:20px;font-size:.82rem;font-weight:700;white-space:nowrap;box-shadow:0 4px 20px #0003;animation:fadeUp .2s ease both;display:flex;align-items:center;gap:10px;pointer-events:auto}.toast-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}.toast-count{font-size:.75rem;opacity:.65;flex-shrink:0;white-space:nowrap}.toast-close{background:none;border:none;color:#fff;font-size:1.1rem;line-height:1;cursor:pointer;padding:0 2px;opacity:.7;flex-shrink:0}.toast-close:hover{opacity:1}.grid-panel{flex:1;padding:20px;overflow-x:auto}.grid{display:inline-flex;gap:0}.grid-row-labels{display:flex;flex-direction:column;gap:8px;margin-right:8px;padding-top:28px}.corner{height:0}.row-label{width:16px;height:90px;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;color:var(--text-dim)}.grid-col-wrap{display:flex;flex-direction:column;gap:8px;margin-right:8px}.col-label{height:20px;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;color:var(--text-dim)}.cell{width:90px;height:90px;border:2px solid var(--border);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;position:relative;background:var(--surface);transition:border-color .18s,box-shadow .18s,transform .14s,background .18s;-webkit-user-select:none;user-select:none;overflow:visible;animation:cellIn .38s ease both}.status-bubble{position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%);background:var(--surface);border:2px solid var(--border-mid);border-radius:10px;padding:3px 8px;font-size:.62rem;font-weight:700;white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis;z-index:10;pointer-events:none;box-shadow:0 2px 8px #0000001a;color:var(--text)}.status-bubble:before{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--border-mid)}.status-bubble:after{content:"";position:absolute;top:calc(100% - 2px);left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--surface);z-index:1}.cell.mine.heat-1{border-color:#ffb347;background:#ffb3472e;box-shadow:0 4px 18px #ffb34780}.cell.mine.heat-2{border-color:#ff8c42;background:#ff8c422e;box-shadow:0 4px 22px #ff8c428c}.cell.mine.heat-3{border-color:var(--coral);background:var(--coral-dim);box-shadow:0 4px 26px var(--coral-glow)}.cell.free:hover{border-color:var(--mint);background:var(--mint-dim);transform:scale(1.06);box-shadow:0 4px 18px var(--mint-glow)}.cell.occupied{border-color:var(--coral);background:var(--coral-dim);box-shadow:0 4px 16px var(--coral-glow)}.cell.occupied:hover{transform:scale(1.06);box-shadow:0 6px 24px var(--coral-glow)}.cell.mine{border-color:var(--yellow);background:var(--yellow-dim);box-shadow:0 4px 18px var(--yellow-glow);cursor:default}.cell.pending{border-color:var(--coral);background:var(--coral-dim);animation:cellPulse 1.2s ease infinite}@keyframes cellIn{0%{opacity:0;transform:scale(.8) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes cellPulse{0%,to{box-shadow:0 4px 12px var(--coral-glow)}50%{box-shadow:0 4px 28px var(--coral-glow)}}.cell-label{position:absolute;top:5px;left:7px;font-size:.58rem;font-weight:700;color:var(--text-dim);line-height:1}.cell-user{display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px}.cell-user img{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid var(--coral)}.cell.mine .cell-user img{border-color:var(--yellow)}.avatar-placeholder{width:42px;height:42px;border-radius:50%;background:var(--coral);color:#fff;font-family:Fredoka,sans-serif;font-size:1.4rem;font-weight:600;display:flex;align-items:center;justify-content:center}.cell.mine .avatar-placeholder{background:var(--yellow);color:var(--text)}.cell-name{font-size:.68rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:76px;text-align:center;color:var(--text)}.tag{font-size:.58rem;font-weight:600;color:var(--text-muted)}.claim-panel{padding:28px 24px 24px;background:var(--surface);border:2px solid var(--coral);border-radius:24px;width:100%;max-width:280px;display:flex;flex-direction:column;gap:12px;box-shadow:0 20px 60px var(--coral-glow);animation:modalIn .28s cubic-bezier(.16,1,.3,1) both}.claim-panel p{font-size:.88rem;font-weight:600;color:var(--text)}.claim-panel strong{color:var(--coral)}.photo-btn{display:flex;align-items:center;justify-content:center;padding:10px 14px;border:2px dashed var(--border-mid);border-radius:12px;background:var(--surface2);color:var(--text-muted);font-size:.85rem;font-weight:700;cursor:pointer;transition:border-color .15s,background .15s,color .15s;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.photo-btn:has(input:not([data-empty])){border-style:solid}.photo-btn:hover{border-color:var(--coral);background:var(--coral-dim);color:var(--coral)}.photo-btn input{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.claim-actions{display:flex;gap:8px}.claim-actions button{flex:1;font-size:.82rem;padding:10px}.cancel{background:var(--surface2);color:var(--text-muted);border:2px solid var(--border)}.cancel:hover{background:var(--border);color:var(--text);box-shadow:none;transform:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2c242073;display:flex;align-items:flex-end;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:overlayIn .2s ease both}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@media (min-width: 600px){.modal-overlay{align-items:center}}.modal{background:var(--surface);border:2px solid var(--border);width:100%;max-width:440px;border-radius:24px 24px 0 0;display:flex;flex-direction:column;max-height:72vh;overflow:hidden;box-shadow:0 -8px 50px #2c242033;animation:slideUp .28s cubic-bezier(.16,1,.3,1) both}@media (min-width: 600px){.modal{border-radius:20px;box-shadow:0 20px 60px #2c242040;animation:modalIn .28s cubic-bezier(.16,1,.3,1) both}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes modalIn{0%{opacity:0;transform:scale(.94) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:2px solid var(--border);font-family:Fredoka,sans-serif;font-size:1.15rem;font-weight:600;color:var(--text)}.modal-header em{font-style:normal;font-size:.82rem;font-family:Nunito,sans-serif;font-weight:700;color:var(--coral);background:var(--coral-dim);border-radius:8px;padding:2px 8px;margin-left:6px}.close-btn{background:var(--surface2);color:var(--text-muted);font-size:.82rem;padding:5px 11px;width:auto;border-radius:10px;border:2px solid var(--border)}.close-btn:hover{background:var(--border);color:var(--text);box-shadow:none;transform:none}.modal-messages{flex:1;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}.modal-messages::-webkit-scrollbar{width:3px}.modal-messages::-webkit-scrollbar-track{background:transparent}.modal-messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.no-msgs{font-size:.85rem;font-weight:600;color:var(--text-dim);text-align:center;padding:28px 0}.message{max-width:75%;padding:10px 14px;border-radius:16px;font-size:.88rem;font-weight:600;line-height:1.5;word-break:break-word;animation:msgIn .2s ease both}@keyframes msgIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.message.mine{background:var(--coral);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.message.theirs{background:var(--surface);color:var(--text);align-self:flex-start;border-bottom-left-radius:4px;border:2px solid var(--border)}.modal-input{display:flex;gap:8px;padding:12px 14px;border-top:2px solid var(--border);background:var(--surface)}.modal-input input{flex:1;font-size:.88rem;padding:10px 12px;background:var(--surface2);border-color:var(--border)}.modal-input button{width:auto;padding:10px 18px;flex-shrink:0;font-size:.85rem}.upv-floor-wrap{flex:1;padding:20px;overflow-x:auto}.upv-floor{display:flex;gap:24px;align-items:flex-start;min-width:fit-content}.upv-section-large,.upv-section-small{display:flex;flex-direction:column;gap:16px}.upv-stairs{width:52px;align-self:stretch;min-height:400px;border:2px solid var(--border-mid);border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--surface2)}.upv-stairs span{writing-mode:vertical-rl;text-orientation:mixed;font-size:.65rem;font-weight:700;letter-spacing:3px;color:var(--text-dim);text-transform:uppercase}.floor-table{position:relative;border:2px solid var(--border-mid);border-radius:14px;background:var(--surface);transition:border-color .18s,box-shadow .18s,transform .14s,background .18s;padding:10px 12px}.floor-table.large{width:420px;min-height:90px}.floor-table.small{width:160px;min-height:110px}.floor-table.is-clickable{cursor:pointer}.floor-table.is-clickable:hover{border-color:var(--mint);background:var(--mint-dim);transform:translateY(-2px);box-shadow:0 6px 20px var(--mint-glow)}.floor-table.is-mine{border-color:var(--yellow);background:var(--yellow-dim);box-shadow:0 4px 18px var(--yellow-glow);cursor:default}.floor-table.is-mine.heat-1{border-color:#ffb347;background:#ffb3472e;box-shadow:0 4px 18px #ffb34780}.floor-table.is-mine.heat-2{border-color:#ff8c42;background:#ff8c422e;box-shadow:0 4px 22px #ff8c428c}.floor-table.is-mine.heat-3{border-color:var(--coral);background:var(--coral-dim);box-shadow:0 4px 26px var(--coral-glow)}.floor-table.is-full{opacity:.55;cursor:not-allowed}.table-id-label{position:absolute;top:6px;left:10px;font-size:.6rem;font-weight:700;color:var(--text-dim);letter-spacing:.3px;pointer-events:none}.table-full-badge{position:absolute;top:6px;right:10px;font-size:.58rem;font-weight:700;color:var(--coral);background:var(--coral-dim);border-radius:6px;padding:2px 7px;pointer-events:none}.table-occupants{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px;align-items:center}.table-free-hint{font-size:.72rem;font-weight:600;color:var(--text-dim);padding:4px 0}.table-bubble{position:relative;width:38px;height:38px;border-radius:50%;overflow:visible;cursor:pointer;flex-shrink:0;transition:transform .14s}.table-bubble img,.table-bubble span{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;object-fit:cover;font-family:Fredoka,sans-serif;font-size:1.1rem;font-weight:600;color:#fff;background:var(--coral);border:2px solid var(--coral)}.table-bubble:hover{transform:scale(1.15);z-index:5}.table-bubble.bubble-me img,.table-bubble.bubble-me span{border-color:var(--yellow);background:var(--yellow);color:var(--text);cursor:default}.table-bubble.bubble-me:hover{transform:none}.table-bubble.bubble-matched img,.table-bubble.bubble-matched span{border-color:var(--coral);box-shadow:0 0 0 2px var(--coral-glow)}.bubble-heart{position:absolute;top:-4px;right:-4px;font-size:.55rem;color:var(--coral);background:var(--surface);border-radius:50%;width:14px;height:14px;display:flex;align-items:center;justify-content:center;pointer-events:none;animation:heartBeat 1.4s ease infinite}.bubble-status-tip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--surface);border:2px solid var(--border-mid);border-radius:8px;padding:3px 7px;font-size:.58rem;font-weight:700;white-space:nowrap;pointer-events:none;z-index:20;display:none;box-shadow:0 2px 8px #0000001a}.table-bubble:hover .bubble-status-tip{display:block}.cell.occupied.matched{border-color:var(--coral);background:var(--coral-dim);box-shadow:0 4px 18px var(--coral-glow)}.match-indicator{position:absolute;top:4px;right:6px;font-size:.65rem;color:var(--coral);line-height:1;animation:heartBeat 1.4s ease infinite}@keyframes heartBeat{0%,to{transform:scale(1)}30%{transform:scale(1.35)}60%{transform:scale(1.1)}}.profile-card{background:var(--surface);border-radius:20px;width:100%;max-width:340px;overflow:hidden;position:relative;box-shadow:0 24px 70px #2c24204d;animation:modalIn .28s cubic-bezier(.16,1,.3,1) both}.profile-card-close{position:absolute;top:12px;right:12px;z-index:5;background:#2c242080;color:#fff;border:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.profile-card-close:hover{background:#2c2420bf;transform:none;box-shadow:none}.profile-card-photo{width:100%;aspect-ratio:1 / 1;object-fit:cover;display:block}.profile-card-avatar{width:100%;aspect-ratio:1 / 1;background:linear-gradient(135deg,var(--coral),#ff9a9e);color:#fff;font-family:Fredoka,sans-serif;font-size:5rem;font-weight:700;display:flex;align-items:center;justify-content:center}.profile-card-info{padding:18px 20px 20px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.profile-card-info .profile-name{font-size:1.3rem;margin:0}.profile-card-info .profile-heart-btn,.profile-card-info .profile-chat-btn{width:100%;margin-top:4px}.profile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2c242073;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:overlayIn .2s ease both;padding:20px}.profile-panel{background:var(--surface);border:2px solid var(--border);border-radius:24px;padding:28px 24px 24px;width:100%;max-width:280px;display:flex;flex-direction:column;align-items:center;gap:10px;position:relative;box-shadow:0 20px 60px #2c242040;animation:modalIn .28s cubic-bezier(.16,1,.3,1) both}.profile-panel .close-btn{position:absolute;top:12px;right:12px}.profile-photo{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid var(--coral);box-shadow:0 4px 20px var(--coral-glow)}.profile-avatar{width:80px;height:80px;border-radius:50%;background:var(--coral);color:#fff;font-family:Fredoka,sans-serif;font-size:2.4rem;font-weight:600;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px var(--coral-glow)}.profile-name{font-family:Fredoka,sans-serif;font-size:1.4rem;font-weight:600;color:var(--text);margin-top:4px}.profile-tag-badge{font-size:.75rem;font-weight:700;background:var(--yellow-dim);color:var(--text-muted);border:2px solid var(--yellow);padding:3px 12px;border-radius:20px}.profile-status{font-size:.82rem;font-weight:600;color:var(--text-muted);font-style:italic;text-align:center}.profile-heart-btn{margin-top:6px;width:100%;background:var(--coral);color:#fff;font-size:1rem;padding:12px;border-radius:14px;letter-spacing:.5px}.profile-heart-btn:hover{box-shadow:0 6px 24px var(--coral-glow);transform:translateY(-2px)}.profile-sit-prompt{margin-top:10px;text-align:center;font-size:.85rem;font-weight:700;color:var(--text-muted);background:var(--surface2);border:1.5px dashed var(--border-mid);border-radius:14px;padding:11px 14px;font-family:Nunito,sans-serif}.profile-photos-locked-hint{margin-top:6px;margin-bottom:0;text-align:center;font-size:.78rem;color:var(--text-muted);font-family:Nunito,sans-serif}.profile-chat-btn{margin-top:6px;width:100%;background:var(--mint);color:#fff;font-size:1rem;padding:12px;border-radius:14px}.profile-chat-btn:hover{box-shadow:0 6px 24px var(--mint-glow);transform:translateY(-2px)}.profile-already-liked{width:100%;margin-top:4px;text-align:center;font-size:.82rem;font-weight:700;color:var(--coral);font-family:Nunito,sans-serif;letter-spacing:.2px;opacity:.75}.profile-waiting-hint{width:100%;margin-top:4px;text-align:center;font-size:.75rem;color:var(--text-muted, #aaa);font-family:Nunito,sans-serif;opacity:.7}.profile-chat-text-btn{margin-top:6px;background:none;border:none;color:var(--accent, #4a90d8);font-family:Nunito,sans-serif;font-size:.85rem;font-weight:700;letter-spacing:.2px;cursor:pointer;padding:4px 8px;text-decoration:underline;text-underline-offset:3px;transition:opacity .16s ease}.profile-chat-text-btn:hover{opacity:.7}.match-popup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2c24208c;display:flex;align-items:center;justify-content:center;z-index:150;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:overlayIn .2s ease both;padding:20px}.match-popup{background:var(--surface);border:2px solid var(--border);border-radius:28px;padding:36px 28px 28px;width:100%;max-width:300px;display:flex;flex-direction:column;align-items:center;gap:10px;box-shadow:0 24px 70px #ff6b6b4d;animation:matchPopIn .4s cubic-bezier(.16,1,.3,1) both}@keyframes matchPopIn{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.match-hearts-row{display:flex;gap:10px;font-size:2rem;color:var(--coral)}.match-hearts-row span:nth-child(1){animation:heartBeat 1.4s 0s ease infinite}.match-hearts-row span:nth-child(2){animation:heartBeat 1.4s .2s ease infinite}.match-hearts-row span:nth-child(3){animation:heartBeat 1.4s .4s ease infinite}.match-popup-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid var(--coral);box-shadow:0 0 0 4px #ff6b6b33}.match-popup-avatar--initial{display:flex;align-items:center;justify-content:center;background:var(--coral);color:#fff;font-size:2rem;font-weight:700}.match-label{font-family:Fredoka,sans-serif;font-size:2.4rem;font-weight:700;color:var(--coral);line-height:1}.match-sub{font-size:.92rem;font-weight:600;color:var(--text-muted);text-align:center}.match-sub strong{color:var(--text)}.match-chat-btn{margin-top:8px;width:100%;background:var(--coral);font-size:.95rem;padding:12px;border-radius:14px}.match-chat-btn:hover{box-shadow:0 6px 24px var(--coral-glow);transform:translateY(-2px)}.match-later-btn{width:100%;font-size:.85rem;padding:10px;border-radius:12px}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.iso-bubble{position:relative;width:56px;height:56px;overflow:visible;cursor:pointer;flex-shrink:0;transition:transform .18s cubic-bezier(.34,1.56,.64,1);animation:bubblePopIn .28s cubic-bezier(.34,1.56,.64,1) backwards}@keyframes bubblePopIn{0%{transform:scale(.3);opacity:0}70%{transform:scale(1.15);opacity:1}to{transform:scale(1);opacity:1}}@keyframes bubblePopOut{0%{transform:scale(1);opacity:1}40%{transform:scale(1.1);opacity:.7}to{transform:scale(.3);opacity:0}}.iso-bubble-leave{animation:bubblePopOut .3s cubic-bezier(.55,0,1,.45) both;pointer-events:none}body.is-safari .iso-bubble{width:63px;height:63px}.iso-bubble-clip{width:100%;height:100%;border-radius:50%;overflow:hidden;border:2px solid #7f8c8d;background:#2c3e50;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000040;transition:box-shadow .18s}.iso-bubble-clip img{width:100%;height:100%;object-fit:cover;display:block}.iso-bubble-clip span{font-family:Fredoka,sans-serif;font-size:1.1rem;font-weight:600;color:#fff}.iso-bubble-status{position:absolute;bottom:calc(100% + 5px);left:62%;background:#14100eb8;color:#ffffffeb;font-size:.6rem;font-weight:500;white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis;padding:2px 7px;border-radius:20px;pointer-events:none;opacity:1;transition:opacity .15s;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:statusFloat 3.2s ease-in-out infinite}@keyframes statusFloat{0%{transform:translate(0)}30%{transform:translate(3px,-2px)}50%{transform:translate(-2px,-4px)}70%{transform:translateY(-2px)}to{transform:translate(0)}}.iso-bubble-name{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#2c2420e0;color:#fff;font-size:.65rem;font-weight:700;white-space:nowrap;padding:2px 7px;border-radius:6px;pointer-events:none;opacity:0;transition:opacity .15s}.iso-bubble:hover{transform:scale(1.5);z-index:20}.iso-bubble:hover .iso-bubble-clip{box-shadow:0 6px 20px #0006}.iso-bubble:hover .iso-bubble-name{opacity:1}.iso-bubble:hover .iso-bubble-status{opacity:0}.iso-bubble-matched .iso-bubble-clip{border-color:#e74c3c;box-shadow:0 2px 10px #e74c3c80}.iso-bubble-hot:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;background:radial-gradient(circle,#ff8c00a6,#ff8c0000 70%);animation:hotGlow 1.8s ease-in-out infinite;pointer-events:none;z-index:-1}@keyframes hotGlow{0%,to{opacity:.45;transform:scale(1)}50%{opacity:1;transform:scale(1.25)}}.iso-bubble-heart{position:absolute;bottom:-4px;right:-4px;pointer-events:none;filter:drop-shadow(0 1px 3px rgba(0,0,0,.25));animation:heartPop .45s cubic-bezier(.34,1.56,.64,1) both,heartFloat 3.8s .45s ease-in-out infinite}@keyframes heartPop{0%{transform:scale(0) rotate(-20deg);opacity:0}60%{transform:scale(1.3) rotate(5deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@keyframes heartFloat{0%{transform:translate(0)}40%{transform:translateY(-2px)}70%{transform:translate(1px,-1px)}to{transform:translate(0)}}.iso-bubble-wheel-open{transform:scale(1.5);z-index:20}.iso-bubble-wheel-open .iso-bubble-status{opacity:0}.iso-bubble-wheel-open .iso-bubble-clip{border-color:#ffffffb3;box-shadow:0 0 0 3px #ffffff38,0 2px 8px #0000004d}.iso-table:hover .iso-bubble{transform:scale(1.2)}.iso-table:hover .iso-bubble:hover{transform:scale(1.5)}.iso-scene{flex:1;position:relative;overflow:hidden;cursor:grab;background:transparent;min-height:0;-webkit-user-select:none;user-select:none}.iso-scene:active{cursor:grabbing}.iso-scene svg{outline:none}.iso-scene image{-webkit-user-drag:none}.iso-controls{position:absolute;bottom:16px;right:16px;display:flex;flex-direction:column;gap:4px;z-index:10}.iso-controls button{width:36px;height:36px;padding:0;border-radius:10px;font-size:1.1rem;display:flex;align-items:center;justify-content:center;background:var(--surface);border:2px solid var(--border);color:var(--text);box-shadow:0 2px 8px #0000001a}.iso-controls button:hover{background:var(--surface2);transform:none}.admin-editor{display:flex;flex-direction:column;height:100dvh;overflow:hidden;background:var(--bg)}.editor-header{position:relative;display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:2px solid var(--border);background:var(--surface);flex-shrink:0}.editor-back-btn{width:auto;padding:6px 14px;font-size:.85rem;border-radius:10px;background:var(--surface2);color:var(--text-muted);border:2px solid var(--border)}.editor-back-btn:hover{background:var(--border);color:var(--text);transform:none;box-shadow:none}.editor-title{font-family:Fredoka,sans-serif;font-size:1.1rem;font-weight:600;color:var(--text);flex:1}.editor-header-actions{display:flex;gap:8px}.editor-save-btn{width:auto;padding:7px 20px;font-size:.85rem;border-radius:10px;background:var(--mint);color:#fff}.editor-save-btn:hover{box-shadow:0 4px 16px var(--mint-glow);transform:translateY(-1px)}.editor-save-btn.saved{background:#27ae60}.editor-save-btn.error{background:var(--coral)}.editor-clear-btn{width:auto;padding:7px 16px;font-size:.85rem;border-radius:10px;background:var(--surface2);color:var(--text-muted);border:2px solid var(--border)}.editor-clear-btn:hover{background:var(--coral-dim);border-color:var(--coral);color:var(--coral);transform:none;box-shadow:none}.editor-clear-btn.active{background:#5ab45a2e;border-color:#5ab45a;color:#5ab45a}.iso-editor-palette{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--surface2);border-bottom:2px solid var(--border);flex-shrink:0;overflow-x:auto}.iso-editor-palette-label{font-size:.72rem;color:var(--text-muted);font-weight:700;white-space:nowrap;flex-shrink:0}.iso-editor-palette-hint{font-size:.72rem;color:var(--mint);font-weight:600;white-space:nowrap;margin-left:8px}.iso-palette-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 12px;border:2px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;font-size:.68rem;color:var(--text);transition:border-color .15s,background .15s;white-space:nowrap;width:auto;height:auto}.iso-palette-btn img{width:28px;height:28px;object-fit:contain}.iso-palette-btn:hover{border-color:var(--mint);background:var(--mint-dim);transform:none;box-shadow:none}.iso-palette-btn.active{border-color:var(--mint);background:var(--mint-dim);color:var(--text);box-shadow:0 2px 10px var(--mint-glow);transform:none}.iso-editor-canvas{flex:1;overflow:hidden;position:relative;background:#f0e8d8;-webkit-user-select:none;user-select:none}.iso-editor-hints{position:absolute;bottom:10px;left:50%;transform:translate(-50%);font-size:.72rem;color:var(--text-muted);background:#ffffffd9;padding:4px 12px;border-radius:8px;pointer-events:none;white-space:nowrap}.iso-editor-selection{stroke:#4a90d8;stroke-dasharray:4 3;fill:none;pointer-events:none}.iso-editor-inspector{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--surface);border-top:2px solid var(--border);flex-shrink:0;flex-wrap:wrap}.iso-inspector-row{display:flex;align-items:center;gap:8px}.iso-inspector-asset{font-size:.82rem;font-weight:700;color:var(--text)}.iso-inspector-cat{font-size:.72rem;color:var(--text-muted);background:var(--surface2);padding:2px 8px;border-radius:6px;border:1px solid var(--border)}.iso-inspector-label{display:flex;flex-direction:column;gap:3px;font-size:.72rem;color:var(--text-muted);font-weight:600}.iso-inspector-input{padding:5px 8px;font-size:.82rem;border-radius:8px;border:1.5px solid var(--border);background:var(--surface2);color:var(--text);width:160px}.iso-inspector-input-sm{width:72px}.iso-inspector-input:focus{border-color:var(--mint);outline:none;box-shadow:0 0 0 3px var(--mint-dim)}.iso-inspector-actions{display:flex;gap:8px;margin-left:auto}.iso-inspector-btn{width:auto;padding:5px 14px;font-size:.8rem;border-radius:8px;background:var(--surface2);color:var(--text);border:1.5px solid var(--border)}.iso-inspector-btn:hover{background:var(--border);transform:none;box-shadow:none}.iso-inspector-btn-danger{background:var(--coral-dim);color:var(--coral);border-color:var(--coral)}.iso-inspector-btn-danger:hover{background:var(--coral);color:#fff;transform:none;box-shadow:none}.iso-settings-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:transparent}.iso-editor-settings-popover{position:absolute;top:100%;right:16px;margin-top:8px;min-width:280px;padding:16px;background:var(--surface);border:1.5px solid var(--border);border-radius:14px;box-shadow:0 16px 40px #0000002e;z-index:1001;display:flex;flex-direction:column;gap:14px}.iso-editor-settings-popover h3{margin:0;font-size:.95rem;font-weight:800;color:var(--text);letter-spacing:.2px}.iso-editor-settings-popover label{display:flex;flex-direction:column;gap:6px;font-size:.78rem;color:var(--text-muted);font-weight:700}.iso-editor-settings-popover input[type=range]{width:100%;accent-color:var(--mint)}.iso-settings-color-row{display:flex;align-items:center;gap:8px}.iso-editor-settings-popover input[type=color]{width:56px;height:36px;padding:0;border:1.5px solid var(--border);border-radius:8px;background:transparent;cursor:pointer}.iso-settings-restore-btn{width:auto;padding:6px 12px;font-size:.72rem;font-weight:700;border-radius:8px;border:1.5px solid var(--border);background:var(--surface2);color:var(--text-muted);cursor:pointer;box-shadow:none}.iso-settings-restore-btn:hover{border-color:var(--coral);color:var(--coral);background:var(--coral-dim);transform:none;box-shadow:none}.iso-settings-hint{margin:0;font-size:.72rem;color:var(--text-dim);font-style:italic}.iso-settings-upload-row{display:flex;gap:6px;align-items:center}.iso-settings-upload-row input[type=text]{flex:1;min-width:0}.iso-settings-upload-btn{flex-shrink:0;width:34px;height:34px;border-radius:8px;border:1.5px solid var(--border);background:var(--surface2);color:var(--text-muted);font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s,color .15s;box-shadow:none;padding:0;transform:none}.iso-settings-upload-btn:hover:not(:disabled){border-color:var(--mint);background:var(--mint-dim);color:var(--mint);transform:none;box-shadow:none}.iso-settings-upload-btn:disabled{opacity:.5;cursor:not-allowed}.logout-btn{margin-top:8px;padding:6px 16px;font-size:.75rem;border-radius:10px;background:transparent;color:var(--text-dim);border:none;box-shadow:none}.logout-btn:hover{color:var(--coral);transform:none;box-shadow:none}.admin-access-btn{width:auto;margin-top:20px;padding:8px 20px;font-size:.78rem;border-radius:10px;background:transparent;color:var(--text-dim);border:2px solid var(--border)}.auth-glass-card{display:flex;flex-direction:column;gap:12px;width:100%;max-width:320px;background:#f8f6f0d1;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid rgba(255,255,255,.65);box-shadow:0 8px 40px #0000001a;border-radius:24px;padding:28px 24px;animation:fadeUp .45s .1s ease both}.auth-card-title{font-family:Nunito,sans-serif;font-size:.82rem;font-weight:700;color:var(--text-muted);text-align:center;letter-spacing:.5px;text-transform:uppercase;margin-bottom:2px}.auth-input-row{display:flex;align-items:center;gap:0;background:#0000000e;border-radius:999px;border:1.5px solid transparent;transition:border-color .18s,box-shadow .18s;overflow:hidden}.auth-input-row:focus-within{border-color:var(--coral);box-shadow:0 0 0 3px var(--coral-dim)}.auth-input-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:42px;color:#00000052}.auth-field{flex:1;border:none;background:transparent;padding:12px 4px 12px 0;font-size:.9rem;font-family:Nunito,sans-serif;font-weight:500;color:var(--text);outline:none;width:100%;box-shadow:none;border-radius:0}.auth-field::placeholder{color:#0000004d;font-weight:400}.auth-field:focus{box-shadow:none;border-color:transparent;outline:none}.auth-eye-btn{background:none;border:none;padding:0 14px 0 6px;color:#00000052;cursor:pointer;display:flex;align-items:center;box-shadow:none;transform:none!important;transition:color .15s}.auth-eye-btn:hover{color:var(--text);transform:none!important;box-shadow:none}.auth-forgot-row{display:flex;justify-content:flex-end;margin-top:-4px}.auth-forgot-link{background:none;border:none;color:var(--text-muted);font-size:.74rem;font-family:Nunito,sans-serif;text-decoration:underline;cursor:pointer;padding:0;box-shadow:none;transform:none!important}.auth-forgot-link:hover{color:var(--text);box-shadow:none}.auth-submit-btn{padding:13px;border-radius:999px;font-size:.92rem;font-weight:700;background:var(--coral);color:#fff;border:none;cursor:pointer;box-shadow:0 4px 18px #ff6b6b59;transition:box-shadow .15s,transform .12s;letter-spacing:.4px}.auth-submit-btn:hover{box-shadow:0 6px 26px #ff6b6b73;transform:translateY(-1px)}.auth-submit-btn:active{transform:scale(.97)}.auth-submit-btn:disabled{background:var(--border);color:var(--text-dim);box-shadow:none;cursor:not-allowed}.auth-footer-text{font-size:.78rem;color:var(--text-muted);text-align:center;font-family:Nunito,sans-serif}.auth-error{font-size:.8rem;color:var(--coral);font-weight:600;text-align:center}.kicked-banner{background:var(--mint-dim);border:1.5px solid var(--mint);border-radius:14px;padding:11px 18px;font-size:.84rem;font-weight:600;color:var(--text);text-align:center;max-width:340px;width:100%;animation:fadeUp .4s ease both}.auth-switch{font-size:.8rem;color:var(--text-muted);text-align:center}.link-btn{background:none;border:none;color:var(--coral);font-weight:700;font-size:.8rem;cursor:pointer;padding:0;box-shadow:none;transform:none!important}.link-btn:hover{text-decoration:underline;box-shadow:none}.photo-pickers-row{display:flex;gap:10px;justify-content:center}.photo-picker{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer}.photo-picker input{display:none}.photo-picker-preview{width:72px;height:72px;border-radius:14px;border:2px dashed var(--border-mid);background:var(--surface2);display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:1.5rem;color:var(--text-dim);transition:border-color .15s}.photo-picker:hover .photo-picker-preview{border-color:var(--coral)}.photo-picker-preview img{width:100%;height:100%;object-fit:cover}.photo-picker-label{font-size:.68rem;color:var(--text-muted);text-align:center;max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-fab{position:fixed;top:16px;right:16px;z-index:200;width:40px;height:40px;border-radius:50%;background:var(--surface);border:2px solid var(--border);color:var(--text-muted);display:flex;align-items:center;justify-content:center;padding:0;box-shadow:0 2px 12px #2c24201a;transition:border-color .15s,color .15s,transform .12s,box-shadow .15s}.settings-fab:hover{border-color:var(--coral);color:var(--coral);box-shadow:0 4px 16px var(--coral-glow);transform:translateY(-1px)}.settings-fab:active{transform:scale(.95)}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#2c242047;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .2s ease both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.sp-sidebar{position:fixed;top:0;right:0;bottom:0;z-index:301;width:min(340px,92vw);background:#f8f6f0f7;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-left:1px solid rgba(255,255,255,.6);display:flex;flex-direction:column;box-shadow:-12px 0 50px #2c24201a;animation:slideInRight .28s cubic-bezier(.16,1,.3,1) both}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.sp-header{display:flex;align-items:center;justify-content:space-between;padding:20px 22px 16px;border-bottom:1px solid rgba(0,0,0,.07);flex-shrink:0}.sp-title{font-family:Fredoka,sans-serif;font-size:1.35rem;font-weight:600;color:var(--text);letter-spacing:.2px}.sp-close-btn{width:30px;height:30px;border-radius:50%;background:#0000000d;border:1px solid rgba(255,255,255,.5);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:none;transition:background .15s,color .15s}.sp-close-btn:hover{background:var(--coral-dim);color:var(--coral);transform:none;box-shadow:none}.sp-body{flex:1;overflow-y:auto;padding:28px 22px 24px;display:flex;flex-direction:column;align-items:center;gap:24px}.sp-avatar-wrap{position:relative;width:110px;height:110px;flex-shrink:0}.sp-avatar-circle{width:110px;height:110px;border-radius:50%;background:var(--surface2);border:3px solid rgba(255,255,255,.8);box-shadow:0 4px 20px #0000001a;overflow:hidden;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:box-shadow .15s}.sp-avatar-circle:hover{box-shadow:0 4px 24px var(--coral-glow)}.sp-avatar-img{width:100%;height:100%;object-fit:cover}.sp-avatar-placeholder{font-size:2.4rem;color:var(--text-dim)}.sp-avatar-edit-btn{position:absolute;bottom:2px;right:2px;width:28px;height:28px;border-radius:50%;background:var(--coral);border:2px solid rgba(248,246,240,.9);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:0 2px 8px #00000026;transition:transform .12s,box-shadow .12s}.sp-avatar-edit-btn:hover{transform:scale(1.12);box-shadow:0 4px 12px var(--coral-glow)}.sp-carousel{display:flex;gap:12px;width:100%;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:4px}.sp-carousel::-webkit-scrollbar{display:none}.sp-photo-card{flex:0 0 calc(50% - 6px);aspect-ratio:3/4;border-radius:16px;overflow:hidden;position:relative;scroll-snap-align:start;background:var(--surface2);border:1.5px solid rgba(255,255,255,.7);box-shadow:0 2px 12px #00000012}.sp-photo-card-img{width:100%;height:100%;object-fit:cover;display:block}.sp-photo-card-empty{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-dim);font-size:.72rem;font-weight:600}.sp-photo-card-actions{position:absolute;bottom:8px;right:8px;display:flex;gap:6px}.sp-photo-action-btn{width:30px;height:30px;border-radius:50%;background:#f8f6f0eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.7);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:0 2px 8px #0000001f;transition:transform .12s,background .12s}.sp-photo-action-btn:hover{transform:scale(1.1);box-shadow:none}.sp-photo-action-btn--danger{color:#c0392b}.sp-photo-action-btn--danger:hover{background:#c0392b1f}.sp-email-row{display:flex;align-items:center;gap:8px;padding:9px 14px;background:#ffffff8c;border:1.5px solid rgba(0,0,0,.07);border-radius:12px;margin-bottom:2px}.sp-email-label{font-family:Nunito,sans-serif;font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}.sp-email-value{font-family:Courier New,monospace;font-size:12px;color:var(--text-muted);word-break:break-all;line-height:1.3}.sp-ig-field{display:flex;align-items:center;background:#ffffffb3;border:1.5px solid rgba(0,0,0,.08);border-radius:999px;padding:10px 16px;width:100%;gap:4px;transition:border-color .15s,box-shadow .15s}.sp-ig-field:focus-within{border-color:var(--coral);box-shadow:0 0 0 3px var(--coral-dim)}.sp-ig-at{font-weight:700;color:var(--coral);font-size:.95rem;flex-shrink:0}.sp-ig-input{flex:1;border:none;background:transparent;font-family:Nunito,sans-serif;font-size:.9rem;font-weight:600;color:var(--text);outline:none;padding:0;box-shadow:none;width:100%}.sp-ig-input::placeholder{color:var(--text-dim);font-weight:400}.sp-save-btn{width:100%;background:var(--coral);color:#fff;font-weight:700;font-size:.95rem;border-radius:999px;padding:13px;border:none;cursor:pointer;letter-spacing:.3px;transition:transform .12s,box-shadow .15s;box-shadow:0 4px 18px var(--coral-glow)}.sp-save-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px var(--coral-glow)}.sp-save-btn:disabled{background:var(--border);color:var(--text-dim);box-shadow:none;transform:none;cursor:not-allowed}.profile-instagram{font-size:.82rem;color:var(--coral);font-weight:700;margin-top:2px}.profile-uni{font-size:.8rem;color:var(--text-muted);font-weight:600;margin:0}.profile-carousel{position:relative;width:100%}.profile-carousel .profile-card-photo{display:block}.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);background:#00000061;color:#fff;border:none;border-radius:50%;width:34px;height:34px;font-size:1.4rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .15s;z-index:3}.carousel-btn:hover{background:#0000009e;transform:translateY(-50%);box-shadow:none}.carousel-prev{left:8px}.carousel-next{right:8px}.carousel-dots{position:absolute;bottom:8px;left:50%;transform:translate(-50%);display:flex;gap:5px;z-index:3}.carousel-dot{width:6px;height:6px;border-radius:50%;background:#ffffff73;cursor:pointer;transition:background .15s}.carousel-dot.active{background:#fff}.iso-bubbles-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.iso-wheel-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:visible;z-index:20}.iso-table-hover-label{position:absolute;transform:translate(-50%,-100%);background:#1e1814d1;color:#fff;font-size:.72rem;font-weight:600;letter-spacing:.02em;padding:4px 10px;border-radius:8px;white-space:nowrap;pointer-events:none;animation:fadeInLabel .14s ease both}@keyframes fadeInLabel{0%{opacity:0;transform:translate(-50%,-90%)}to{opacity:1;transform:translate(-50%,-100%)}}.iso-table-bubbles{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;display:flex;flex-wrap:wrap;gap:4px;justify-content:center;padding:2px}.iso-bubble-wrapper{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;z-index:10;user-select:none;-webkit-user-select:none}.iso-bubble-wrapper:hover{z-index:20}.iso-bubble-wrapper:hover .iso-bubble{transform:scale(1.5)}.iso-bubble-wrapper:hover .iso-bubble .iso-bubble-clip{box-shadow:0 6px 20px #0006}.iso-bubble-wrapper:hover .iso-bubble .iso-bubble-name{opacity:1}.iso-bubble-wrapper:hover .iso-bubble .iso-bubble-status{opacity:0}.iso-bubble-wrapper--own:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;background:radial-gradient(circle,rgba(100,180,255,.35) 0%,transparent 70%);pointer-events:none;animation:ownSeatPulse 2.4s ease-in-out infinite}@keyframes ownSeatPulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.25)}}.iso-bubble-wrapper--other:after{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:50%;background:radial-gradient(circle,rgba(255,200,100,.22) 0%,transparent 70%);pointer-events:none;animation:otherSeatPulse 3s ease-in-out infinite}@keyframes otherSeatPulse{0%,to{opacity:.5}50%{opacity:1}}.iso-bubble-wrapper--search-dim{opacity:.15;filter:grayscale(1);pointer-events:none;transition:opacity .2s,filter .2s}.iso-bubble-wrapper--search-match{z-index:30}.iso-bubble-wrapper--search-match .iso-bubble-clip{box-shadow:0 0 0 3px #ff6b6b,0 4px 22px #ff6b6b8c}.iso-bubble-wrapper--search-match .iso-bubble-name{opacity:1!important}.account-panel{background:var(--surface);border:1.5px solid var(--border);border-radius:22px;padding:28px 28px 24px;width:min(340px,calc(100vw - 40px));box-shadow:0 12px 40px #2c242021;position:relative;animation:fadeUp .3s cubic-bezier(.2,1,.3,1)}.account-panel-title{font-family:Fredoka,sans-serif;font-size:20px;font-weight:600;color:var(--text);margin:0 0 20px;text-align:center;letter-spacing:.2px}.account-panel-rows{display:flex;flex-direction:column;gap:12px}.account-panel-row{display:flex;align-items:baseline;gap:10px;padding:10px 14px;background:var(--bg);border-radius:12px;border:1px solid var(--border)}.account-panel-label{font-family:Nunito,sans-serif;font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;min-width:80px;flex-shrink:0}.account-panel-value{font-family:Nunito,sans-serif;font-size:14px;font-weight:600;color:var(--text);word-break:break-all}.account-panel-value--mono{font-family:Courier New,monospace;font-size:13px;color:var(--text-muted)}.notif-banner{position:fixed;bottom:28px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--surface);border:2px solid var(--border);border-radius:18px;box-shadow:0 8px 32px var(--coral-glow),0 2px 8px #2c24200f;z-index:2000;animation:fadeUp .45s cubic-bezier(.2,1,.3,1);max-width:400px;width:calc(100vw - 48px);font-family:Nunito,sans-serif}.notif-banner-icon{font-size:26px;flex-shrink:0;line-height:1}.notif-banner-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.notif-banner-text strong{font-family:Fredoka,sans-serif;font-weight:600;font-size:15px;color:var(--text);letter-spacing:.1px}.notif-banner-text span{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-banner-btn{background:var(--coral);color:#fff;font-family:Nunito,sans-serif;font-weight:700;font-size:13px;letter-spacing:.3px;border:none;border-radius:12px;padding:9px 18px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:transform .12s ease,box-shadow .12s ease}.notif-banner-btn:hover{transform:translateY(-2px);box-shadow:0 6px 22px var(--coral-glow)}.notif-banner-btn:active{transform:scale(.97)}.lib-friends-btn{position:absolute;top:70px;right:18px;z-index:30;width:46px;height:46px;border-radius:50%;background:#f8f6f0e6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.65);box-shadow:0 2px 18px #00000014;color:#4a4038;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .15s,color .15s}.lib-friends-btn:hover{background:var(--coral-dim);color:var(--coral);transform:none;box-shadow:0 2px 18px #00000014}.lib-friends-btn[data-tip]:before{content:attr(data-tip);position:absolute;top:50%;right:calc(100% + 8px);transform:translateY(-50%);background:#2c2420e0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-family:Nunito,sans-serif;font-size:.72rem;font-weight:600;padding:4px 9px;border-radius:8px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s .4s;z-index:50}.lib-friends-btn[data-tip]:hover:before{opacity:1}.lib-msgs-btn{position:absolute;top:124px;right:18px;z-index:30;width:46px;height:46px;border-radius:50%;background:#f8f6f0e6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.65);box-shadow:0 2px 18px #00000014;color:#4a4038;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .15s,color .15s}.lib-msgs-btn:hover{background:var(--coral-dim);color:var(--coral);transform:none;box-shadow:0 2px 18px #00000014}.lib-msgs-btn[data-tip]:before{content:attr(data-tip);position:absolute;top:50%;right:calc(100% + 8px);transform:translateY(-50%);background:#2c2420e0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-family:Nunito,sans-serif;font-size:.72rem;font-weight:600;padding:4px 9px;border-radius:8px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s .4s;z-index:50}.lib-msgs-btn[data-tip]:hover:before{opacity:1}.friends-panel{position:absolute;top:124px;right:18px;z-index:40;width:280px;max-height:420px;display:flex;flex-direction:column;background:#f8f6f0f5;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.65);border-radius:18px;box-shadow:0 10px 40px #00000029;overflow:hidden;animation:fadeUp .15s ease both;font-family:Nunito,sans-serif}.friends-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 10px;border-bottom:1px solid rgba(0,0,0,.06)}.friends-panel-title{font-weight:800;color:var(--text);font-size:.95rem}.friends-panel-count{font-size:.72rem;font-weight:700;color:var(--text-muted);background:var(--surface2);padding:2px 8px;border-radius:999px}.friends-panel-empty{padding:24px 18px;text-align:center;color:var(--text-muted);font-size:.82rem;line-height:1.5}.friends-panel-list{list-style:none;margin:0;padding:4px 0;overflow-y:auto}.friends-panel-item{display:flex;align-items:center;gap:10px;padding:8px 14px;cursor:pointer;transition:background .12s}.friends-panel-item:hover{background:var(--surface2)}.friends-avatar-wrap{position:relative;flex-shrink:0;width:36px;height:36px}.friends-avatar{width:36px;height:36px;border-radius:50%;background:var(--surface2);display:flex;align-items:center;justify-content:center;overflow:hidden;font-weight:700;color:var(--text-muted)}.friends-avatar img{width:100%;height:100%;object-fit:cover}.friends-online-dot{position:absolute;bottom:-1px;right:-5px;width:11px;height:11px;border-radius:50%;background:#3bd14b;border:2px solid rgba(248,246,240,.96);box-shadow:0 0 6px #3bd14b99}.friends-meta{display:flex;flex-direction:column;gap:1px;min-width:0}.friends-name{font-weight:700;color:var(--text);font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.friends-status{font-size:.72rem;color:var(--text-muted)}.sp-friend-link-btn{margin-top:10px;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 14px;font-family:Nunito,sans-serif;font-size:.85rem;font-weight:700;color:var(--coral);background:var(--coral-dim);border:1.5px solid transparent;border-radius:999px;cursor:pointer;transition:background .15s,border-color .15s,transform .12s;box-shadow:none}.sp-friend-link-btn:hover{background:#ff6b6b2e;border-color:var(--coral);transform:translateY(-1px);box-shadow:0 4px 14px #ff6b6b2e}.profile-friend-link-btn{margin-top:8px;background:var(--surface2);color:var(--text);border:1.5px solid var(--border);border-radius:999px;padding:9px 14px;font-size:.82rem;font-weight:700;cursor:pointer;transition:border-color .15s,background .15s;box-shadow:none}.profile-friend-link-btn:hover{border-color:var(--coral);background:var(--coral-dim);color:var(--coral);transform:none;box-shadow:none}.profile-already-friend{margin-top:8px;font-size:.78rem;font-weight:700;color:#3bd14b;text-align:center}.friend-link-toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%);z-index:200;background:#2c2420eb;color:#fff;font-family:Nunito,sans-serif;font-size:.85rem;font-weight:600;padding:11px 18px;border-radius:12px;box-shadow:0 6px 24px #00000040;animation:fadeUp .25s ease both;max-width:90vw;text-align:center}.minimap-container{position:absolute;bottom:18px;left:18px;z-index:25;background:transparent;border-radius:14px;padding:6px 10px;pointer-events:auto;filter:drop-shadow(0 4px 16px rgba(20,14,10,.38)) drop-shadow(0 1px 4px rgba(0,0,0,.22))}.minimap-svg{display:block}.minimap-svg path{transition:fill .18s,stroke .18s}.minimap-svg path:hover{fill:#8cdcff4d!important}.editor-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);background:var(--surface2);flex-shrink:0}.editor-tab{width:auto;padding:10px 22px;font-size:.82rem;font-weight:700;border-radius:0;border:none;border-bottom:3px solid transparent;background:transparent;color:var(--text-muted);margin-bottom:-2px;transition:color .15s,border-color .15s}.editor-tab:hover{color:var(--text);background:transparent;transform:none;box-shadow:none}.editor-tab.active{color:var(--mint);border-bottom-color:var(--mint)}.mm-editor{display:flex;flex:1;overflow:hidden;background:var(--bg)}.mm-editor-loading{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.9rem}.mm-editor-floors{width:170px;flex-shrink:0;border-right:2px solid var(--border);background:var(--surface);display:flex;flex-direction:column;padding:12px 8px;gap:4px;overflow-y:auto}.mm-floors-header{display:flex;align-items:center;justify-content:space-between;padding:0 4px 8px;font-size:.7rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.mm-floors-add{width:24px;height:24px;padding:0;font-size:1rem;line-height:1;border-radius:6px;background:var(--surface2);border:2px solid var(--border);color:var(--text-muted);display:flex;align-items:center;justify-content:center}.mm-floors-add:hover{background:var(--mint);color:#fff;border-color:var(--mint);transform:none;box-shadow:none}.mm-floor-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:8px;cursor:pointer;border:2px solid transparent;background:transparent;transition:background .12s}.mm-floor-item:hover{background:var(--surface2)}.mm-floor-item.active{background:rgba(var(--mint-rgb, 74,200,140),.12);border-color:var(--mint)}.mm-floor-item-name{font-size:.82rem;font-weight:600;color:var(--text);flex:1}.mm-floor-del{width:18px;height:18px;padding:0;font-size:.9rem;border-radius:4px;background:transparent;border:none;color:var(--text-dim);cursor:pointer;line-height:1;flex-shrink:0}.mm-floor-del:hover{background:var(--coral-dim);color:var(--coral);transform:none;box-shadow:none}.mm-save-btn{margin-top:auto;width:100%;padding:8px 0;font-size:.8rem}.mm-editor-center{flex:1;display:flex;flex-direction:column;overflow:hidden}.mm-editor-toolbar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:2px solid var(--border);background:var(--surface2);flex-shrink:0;flex-wrap:wrap}.mm-floor-name-input{padding:5px 10px;border-radius:8px;border:2px solid var(--border);background:var(--surface);color:var(--text);font-size:.82rem;font-weight:600;width:140px}.mm-floor-name-input:focus{border-color:var(--mint);outline:none}.mm-toolbar-modes{display:flex;gap:6px}.mm-toolbar-right{margin-left:auto;display:flex;gap:8px;align-items:center}.mm-placing-hint{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--mint);font-weight:600;padding:4px 10px;border-radius:8px;background:rgba(var(--mint-rgb, 74,200,140),.1);border:1px solid var(--mint)}.mm-placing-hint button{width:18px;height:18px;padding:0;font-size:.8rem;line-height:1;border-radius:4px;background:transparent;border:none;color:var(--text-muted);cursor:pointer}.mm-editor-canvas-wrap{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;background:#0e1525;padding:24px}.mm-editor-canvas{display:block;max-width:100%;max-height:100%;border-radius:6px;border:1.5px solid rgba(80,180,255,.3);box-shadow:0 0 32px #00000080}.mm-editor-canvas.cursor-crosshair{cursor:crosshair}.mm-editor-canvas.cursor-cell{cursor:cell}.mm-editor-inspector{width:220px;flex-shrink:0;border-left:2px solid var(--border);background:var(--surface);overflow-y:auto;display:flex;flex-direction:column;gap:0}.mm-inspector-section{padding:14px 14px 12px;border-bottom:1px solid var(--border)}.mm-inspector-section h4{font-size:.72rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;margin:0 0 10px}.mm-hint{font-size:.72rem;color:var(--text-dim);margin:4px 0;line-height:1.4}.mm-hint-warn{color:var(--coral)}.mm-seat-link-label{font-size:.78rem;color:var(--text);font-weight:600;margin:0 0 10px}.mm-seats-from-editor{flex:1}.mm-table-group{margin-bottom:10px}.mm-table-group.mm-table-dim{opacity:.5}.mm-table-header{font-size:.72rem;font-weight:700;color:var(--text-muted);padding:3px 0 4px;display:flex;align-items:center;gap:5px}.mm-floor-badge{font-size:.65rem;background:var(--surface2);border-radius:4px;padding:1px 4px;color:var(--text-dim)}.mm-seat-item{display:block;width:100%;text-align:left;padding:5px 8px;margin-bottom:3px;border-radius:6px;border:1.5px solid var(--border);background:var(--surface2);color:var(--text-muted);font-size:.75rem;cursor:pointer}.mm-seat-item:hover:not(.mm-seat-placed){border-color:var(--mint);color:var(--mint);transform:none;box-shadow:none}.mm-seat-item.mm-seat-placed{opacity:.45;cursor:default;color:var(--text-dim)}.mm-seat-item.mm-seat-pending{border-color:var(--mint);background:rgba(var(--mint-rgb, 74,200,140),.12);color:var(--mint)}.mm-enabled-toggle{display:flex;align-items:center;gap:8px;padding:8px 4px;font-size:.8rem;font-weight:600;color:var(--text-muted);cursor:pointer;border-top:1px solid var(--border);margin-top:auto}.mm-enabled-toggle input[type=checkbox]{accent-color:var(--mint);width:15px;height:15px;cursor:pointer}.mm-import-btn{width:100%;padding:8px 0;font-size:.78rem;font-weight:700;background:rgba(var(--mint-rgb, 74,200,140),.12);border-color:var(--mint);color:var(--mint)}.mm-import-btn:hover:not(:disabled){background:var(--mint);color:#fff;transform:none;box-shadow:none}.mm-import-btn:disabled{opacity:.35;cursor:not-allowed}.landing-letter{display:inline-block;animation:fadeUp .7s cubic-bezier(.2,.8,.2,1) both;transition:transform .18s cubic-bezier(.2,.8,.2,1);cursor:default}.landing-letter:hover{transform:translateY(-6px) rotate(-3deg)}.landing-liate-badge{position:absolute;top:12px;right:0;display:inline-flex;align-items:center;padding:7px 14px;background:var(--coral);color:#fff8f2;font-family:Fredoka,sans-serif;font-weight:700;font-size:16px;letter-spacing:.5px;border-radius:999px;transform:rotate(10deg);box-shadow:0 6px 20px var(--coral-glow);white-space:nowrap;cursor:default;transition:transform .28s cubic-bezier(.2,1.6,.4,1),box-shadow .28s ease;-webkit-user-select:none;user-select:none}.landing-liate-badge:hover{transform:rotate(10deg) scale(1.22);box-shadow:0 10px 28px var(--coral-glow)}.landing-register-btn{font-size:.87rem!important;padding:10px 24px!important;border-radius:14px!important;background:transparent!important;color:var(--coral)!important;border:2px solid var(--coral)!important;box-shadow:none!important}.landing-register-btn:hover{background:var(--coral-dim)!important;box-shadow:0 4px 16px var(--coral-glow)!important;transform:translateY(-2px)!important}@media (max-width: 700px){.landing-topbar-right{display:none}}.likers-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2c242073;display:flex;align-items:flex-end;justify-content:center;z-index:150;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:overlayIn .2s ease both}.likers-panel{background:var(--surface);border:1.5px solid var(--border);border-radius:28px 28px 0 0;width:100%;max-width:480px;max-height:70vh;display:flex;flex-direction:column;overflow:hidden;animation:likersPanelIn .32s cubic-bezier(.16,1,.3,1) both}@keyframes likersPanelIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}.likers-header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.likers-title{display:flex;align-items:center;gap:8px;font-family:Fredoka,sans-serif;font-size:1.2rem;font-weight:600;color:var(--text)}.likers-close{width:32px;height:32px;border-radius:50%;border:none;background:var(--surface-raised, rgba(44,36,32,.08));color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s;padding:0;flex-shrink:0}.likers-close:hover{background:var(--border);transform:none;box-shadow:none}.likers-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:44px 20px;color:var(--text-muted);font-size:1rem;font-weight:600}.likers-empty span{font-size:2rem}.likers-empty-sub{font-size:.82rem;font-weight:400;color:var(--text-dim);margin:0}.likers-list{overflow-y:auto;padding:8px 0 20px;display:flex;flex-direction:column}.likers-item{display:flex;align-items:center;gap:12px;padding:10px 20px;transition:background .12s}.likers-item:hover{background:#2c24200a}.likers-avatar-wrap{position:relative;flex-shrink:0}.likers-avatar{width:46px;height:46px;border-radius:50%;overflow:hidden;background:var(--coral-dim, #ffe8e8);display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700;color:var(--coral)}.likers-avatar img{width:100%;height:100%;object-fit:cover}.likers-dot{position:absolute;bottom:1px;right:1px;width:11px;height:11px;border-radius:50%;background:#34d399;border:2px solid var(--surface)}.likers-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.likers-name{font-size:.95rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.likers-time{font-size:.78rem;color:var(--text-dim)}.likers-action{flex-shrink:0}.likers-match-badge{font-size:.8rem;font-weight:700;color:var(--coral);padding:4px 10px;border-radius:20px;background:var(--coral-dim, rgba(255,107,107,.12))}.likers-liked-badge{font-size:1.1rem;color:var(--coral)}.likers-like-btn{font-size:.85rem;font-weight:700;color:#fff;background:var(--coral);border:none;border-radius:20px;padding:6px 14px;cursor:pointer;transition:opacity .15s,transform .15s}.likers-like-btn:hover{opacity:.85;transform:scale(1.04);box-shadow:none}.libsel-card{flex-wrap:wrap;row-gap:6px}.libsel-stats{flex-basis:100%;display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;font-size:.7rem;font-weight:700;color:var(--text-muted)}.libsel-stats>span{background:var(--surface2);border-radius:999px;padding:2px 8px;white-space:nowrap}.libsel-stats--loading{opacity:.6}.lib-stat-panel{position:fixed;top:12px;left:12px;z-index:30;background:var(--surface);border:2px solid var(--border);border-radius:14px;padding:10px 12px;box-shadow:0 4px 18px #00000014;font-family:Nunito,sans-serif;font-size:.78rem;color:var(--text);min-width:200px;pointer-events:auto}.lib-stat-panel-title{font-size:.7rem;font-weight:800;letter-spacing:.3px;color:var(--text-muted);text-transform:uppercase;margin-bottom:6px}.lib-stat-panel-row{display:flex;justify-content:space-between;gap:12px;padding:2px 0}.lib-stat-panel-row>span{color:var(--text-muted)}.lib-stat-panel-row>b{font-weight:800;color:var(--text)}.lib-stat-panel-row--dim{color:var(--text-dim)}
