.dihen-page--wifi-index{--brand:#4a3fa8;--brand-mid:#6357c4;--brand-dark:#2d2475;--brand-light:#eae8ff;--brand-xlight:#f4f3ff;--cream:#fafaf7;--cream-warm:#f6f2e9;--ink:#1a1a2e;--ink-80:#3a3a55;--ink-60:#6b6a80;--ink-30:#bdbcc8;--ink-10:#eeeef2;--surface:#fff;--border:#1a1a2e17;--border-med:#1a1a2e26;--teal:#0f9b7a;--teal-light:#e0f5ee;--amber:#c47c15;--amber-light:#fdf3e0;--coral:#c4503a;--coral-light:#fdeae6;--pink:#d64a8f;--pink-light:#fce7f1;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--radius-xl:32px;--radius-pill:100px;--shadow-sm:0 1px 3px #1a1a2e12, 0 1px 2px #1a1a2e0d;--shadow-md:0 4px 16px #1a1a2e17, 0 2px 6px #1a1a2e0f;--shadow-lg:0 12px 40px #1a1a2e1f, 0 4px 12px #1a1a2e12;--shadow-fab:0 8px 28px #4a3fa859, 0 2px 8px #4a3fa838;--max-w:1160px;--nav-h:64px;--font-display:"DM Serif Display", Georgia, serif;--font-body:"DM Sans", system-ui, sans-serif;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);background:var(--cream);color:var(--ink)}:where(.dihen-page--wifi-index button){cursor:pointer;background:0 0;border:none;font-family:inherit}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)rotate(-1deg)}50%{transform:translateY(-8px)rotate(1deg)}}@keyframes pulseRing{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}@keyframes copyPop{0%{transform:scale(1)}40%{transform:scale(.92)}70%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes checkDraw{0%{stroke-dashoffset:24px}to{stroke-dashoffset:0}}@keyframes toastIn{0%{opacity:0;transform:translateY(16px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-8px)scale(.95)}}.hero{background:radial-gradient(ellipse 700px 350px at 20% 30%, #eae8ffd9, transparent 60%), radial-gradient(ellipse 500px 400px at 85% 70%, #e0f5ee80, transparent 55%), var(--cream);text-align:center;padding:56px 32px 48px;position:relative;overflow:hidden}.hero-inner{z-index:2;max-width:680px;margin:0 auto;position:relative}.hero-mascot{margin-bottom:12px;font-size:44px;animation:4s ease-in-out infinite float;display:inline-block}.hero-h1{font-family:var(--font-display);letter-spacing:-1px;color:var(--ink);animation:fadeUp .6s var(--ease-out) both;margin-bottom:10px;font-size:clamp(32px,5vw,48px);font-weight:400;line-height:1.1}.hero-h1 em{color:var(--brand);font-style:italic;position:relative}.hero-sub{color:var(--ink-60);animation:fadeUp .6s var(--ease-out) 80ms both;margin-bottom:28px;font-size:16px;line-height:1.5}.search-box{max-width:580px;animation:fadeUp .7s var(--ease-out) .15s both;margin:0 auto 20px;display:flex;position:relative}.search-input{width:100%;font-family:var(--font-body);color:var(--ink);background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);transition:all .25s var(--ease-out);outline:none;padding:18px 56px 18px 52px;font-size:17px;font-weight:400}.search-input::placeholder{color:var(--ink-30)}.search-input::-webkit-search-cancel-button{appearance:none;display:none}.search-input::-webkit-search-decoration{appearance:none;display:none}.search-input::-webkit-search-results-button{appearance:none;display:none}.search-input:focus{border-color:var(--brand);box-shadow:var(--shadow-lg), 0 0 0 4px #4a3fa81a}.search-icon{width:22px;height:22px;color:var(--ink-30);pointer-events:none;position:absolute;top:50%;left:18px;transform:translateY(-50%)}.search-clear{width:28px;height:28px;color:var(--ink-30);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s;display:none;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.search-clear.show{display:flex}.search-clear:hover{background:var(--ink-10);color:var(--ink-60)}.search-clear svg{width:16px;height:16px}.search-shortcut{background:var(--cream);border:1px solid var(--border-med);color:var(--ink-30);pointer-events:none;border-radius:6px;padding:3px 8px;font-size:11px;font-weight:600;transition:opacity .15s;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.quick-tags{animation:fadeUp .7s var(--ease-out) .25s both;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.quick-tags-label{color:var(--ink-30);font-size:12px;font-weight:500}.quick-tag{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--ink-60);transition:all .18s var(--ease-out);cursor:pointer;padding:5px 12px;font-size:13px;font-weight:500}.quick-tag:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-xlight);transform:translateY(-1px)}.hero-stats{animation:fadeUp .7s var(--ease-out) .32s both;justify-content:center;align-items:center;gap:24px;margin-top:20px;display:flex}.hero-stat{color:var(--ink-30);align-items:center;gap:5px;font-size:13px;display:flex}.hero-stat strong{color:var(--ink-60);font-weight:600}.stat-dot{background:var(--ink-30);opacity:.4;border-radius:50%;width:5px;height:5px}.filter-bar{top:var(--nav-h);z-index:190;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#fffffff5;position:sticky;box-shadow:0 2px 10px #1a1a2e0a}.filter-bar-inner{max-width:var(--max-w);scrollbar-width:none;-ms-overflow-style:none;align-items:center;gap:8px;height:52px;margin:0 auto;padding:0 32px;display:flex;overflow-x:auto}.filter-bar-inner::-webkit-scrollbar{display:none}.filter-chip{border-radius:var(--radius-pill);border:1.5px solid var(--border);color:var(--ink-60);background:var(--surface);cursor:pointer;white-space:nowrap;transition:all .18s var(--ease-out);-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;gap:5px;padding:7px 15px;font-size:13px;font-weight:500;display:inline-flex}.filter-chip:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-xlight)}.filter-chip.active{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 3px 10px #4a3fa833}.filter-chip svg{width:14px;height:14px}.filter-count{color:var(--ink-30);white-space:nowrap;flex-shrink:0;margin-left:auto;padding-left:16px;font-size:13px}.filter-count strong{color:var(--ink-60);font-weight:600}@media (width<=720px){.filter-bar-inner{padding:0 16px}.filter-count{display:none}.filter-bar{top:calc(var(--nav-h) + 54px)}}.results-section{max-width:var(--max-w);margin:0 auto;padding:24px 32px 60px}.wifi-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;display:grid}.wifi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:all .22s var(--ease-out);animation:fadeUp .5s var(--ease-out) both;padding:20px;position:relative;overflow:hidden}.wifi-card:hover{border-color:var(--brand-light);box-shadow:var(--shadow-md);transform:translateY(-2px)}.wifi-card-header{align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.wifi-thumb{border-radius:var(--radius-md);background:var(--cream-warm);flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:24px;display:flex}.wifi-card-info{flex:1;min-width:0}.wifi-card-name{color:var(--ink);letter-spacing:-.2px;align-items:center;gap:6px;margin-bottom:3px;font-size:16px;font-weight:600;display:flex}.wifi-card-name a{text-decoration:none}.wifi-card-name a:hover{color:var(--brand)}.wifi-card-meta{color:var(--ink-60);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.wifi-card-meta .meta-sep{color:var(--ink-30)}.wifi-badge{border-radius:var(--radius-pill);align-items:center;gap:3px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-verified{background:var(--teal-light);color:var(--teal)}.badge-new{background:var(--brand-light);color:var(--brand)}.badge-unverified{background:var(--amber-light);color:var(--amber)}.wifi-pass-area{background:var(--cream);border:1.5px solid var(--border);border-radius:var(--radius-md);margin-bottom:14px;padding:14px 16px;transition:border-color .2s}.wifi-card:hover .wifi-pass-area{border-color:#4a3fa826}.wifi-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.wifi-row+.wifi-row{border-top:1px dashed var(--border);margin-top:10px;padding-top:10px}.wifi-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-30);margin-bottom:2px;font-size:11px;font-weight:600}.wifi-value{color:var(--ink-80);font-size:15px;font-weight:500;font-family:var(--font-body);letter-spacing:.3px;word-break:break-all}.wifi-pass-value{color:var(--brand);letter-spacing:1.2px;font-size:20px;font-weight:700;font-family:var(--font-body)}.btn-copy{border-radius:var(--radius-pill);transition:all .18s var(--ease-out);flex-shrink:0;align-items:center;gap:5px;padding:7px 14px;font-size:12px;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn-copy-pass{background:var(--brand);color:#fff;box-shadow:0 3px 10px #4a3fa838}.btn-copy-pass:hover{background:var(--brand-mid);transform:translateY(-1px);box-shadow:0 5px 16px #4a3fa847}.btn-copy-ssid{border:1.5px solid var(--border-med);color:var(--ink-60);background:0 0}.btn-copy-ssid:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-xlight)}.btn-copy svg{width:13px;height:13px}.btn-copy.copied{animation:copyPop .35s var(--ease-spring);background:var(--teal)!important;border-color:var(--teal)!important;color:#fff!important}.btn-copy .copy-check{stroke-dasharray:24;stroke-dashoffset:0;width:13px;height:13px;animation:.3s ease-out checkDraw}.wifi-card-footer{justify-content:space-between;align-items:center;gap:8px;display:flex}.wifi-updated{color:var(--ink-30);align-items:center;gap:4px;font-size:12px;display:flex}.wifi-updated svg{width:12px;height:12px}.wifi-actions{align-items:center;gap:4px;display:flex}.btn-report{color:var(--ink-30);border-radius:var(--radius-pill);align-items:center;gap:4px;padding:4px 10px;font-size:12px;transition:all .15s;display:inline-flex}.btn-report:hover{background:var(--coral-light);color:var(--coral)}.btn-report svg{width:12px;height:12px}.wifi-pagination{margin-top:32px}.toast-container{z-index:9999;pointer-events:none;position:fixed;bottom:100px;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:#fff;border-radius:var(--radius-pill);box-shadow:var(--shadow-lg);white-space:nowrap;animation:toastIn .3s var(--ease-spring) both;align-items:center;gap:8px;padding:12px 22px;font-size:14px;font-weight:500;display:flex}.toast.out{animation:.25s both toastOut}.toast svg{width:16px;height:16px;color:var(--teal)}.empty-state{text-align:center;animation:fadeUp .5s var(--ease-out) both;padding:20px}.empty-mascot{margin-bottom:16px;font-size:64px;animation:4s ease-in-out infinite float;display:inline-block}.empty-title{font-family:var(--font-display);color:var(--ink);margin-bottom:8px;font-size:24px}.empty-sub{color:var(--ink-60);max-width:380px;margin-bottom:20px;margin-left:auto;margin-right:auto;font-size:15px}.btn-empty-add{background:var(--brand);color:#fff;border-radius:var(--radius-pill);cursor:pointer;border:none;align-items:center;gap:6px;padding:11px 22px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex;box-shadow:0 4px 14px #4a3fa840}.btn-empty-add:hover{background:var(--brand-mid);color:#fff;transform:translateY(-1px)}.btn-empty-add svg{width:15px;height:15px}.community{max-width:var(--max-w);margin:0 auto 40px;padding:0 32px}.community-card{background:var(--brand-xlight);border:1px solid var(--brand-light);border-radius:var(--radius-xl);align-items:center;gap:32px;padding:40px;display:flex;position:relative;overflow:hidden}.community-card:before{content:"";pointer-events:none;background:radial-gradient(circle,#4a3fa80f,#0000 70%);border-radius:50%;width:260px;height:260px;position:absolute;top:-60px;right:-60px}.community-mascot{flex-shrink:0;font-size:72px;animation:5s ease-in-out infinite float}.community-text{flex:1}.community-title{font-family:var(--font-display);color:var(--ink);margin-bottom:8px;font-size:clamp(22px,3vw,28px);line-height:1.2}.community-title em{color:var(--brand);font-style:italic}.community-sub{color:var(--ink-60);margin-bottom:16px;font-size:15px;line-height:1.5}.btn-community{background:var(--brand);color:#fff;border-radius:var(--radius-pill);cursor:pointer;border:none;align-items:center;gap:7px;padding:12px 22px;font-size:14px;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 4px 14px #4a3fa84d}.btn-community:hover{background:var(--brand-mid);transform:translateY(-1px)}.btn-community svg{width:15px;height:15px}@media (width<=720px){.community{padding:0 16px}.community-card{text-align:center;flex-direction:column;gap:16px;padding:32px 24px}.community-mascot{font-size:56px}}.fab-add{z-index:500;background:linear-gradient(155deg, #12a589 0%, var(--teal) 45%, #0c8268 100%);color:#fff;width:40px;height:40px;transition:transform .2s var(--ease-out), filter .2s var(--ease-out), box-shadow .2s var(--ease-out);border-radius:50%;justify-content:center;align-items:center;display:none;position:fixed;bottom:140px;right:16px;box-shadow:0 6px 20px #0f9b7a57,0 2px 8px #0c5a482e}.fab-add:hover{filter:brightness(1.05);transform:scale(1.06)}.fab-add:active{transform:scale(.96)}.fab-add svg,.fab-add .fab-add__wifi-icon{width:20px;height:20px;margin-bottom:5px}@media (width<=720px){.fab-add{display:flex}}.modal-backdrop{-webkit-backdrop-filter:blur(6px);z-index:1000;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s var(--ease-out,ease), visibility .28s var(--ease-out,ease);background:#1a1a2e66;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-backdrop.open{opacity:1;visibility:visible;pointer-events:auto}.modal-backdrop.open .modal-sheet{animation:fadeUp .38s var(--ease-out) both}.modal-sheet{background:var(--surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:520px;max-height:85vh;padding:28px 28px 32px;position:relative;overflow-y:auto;box-shadow:0 24px 80px #1a1a2e1f,inset 0 0 0 1px #ffffff80}.modal-handle{background:var(--ink-10);border-radius:2px;width:36px;height:4px;margin:0 auto 20px}.modal-title{font-family:var(--font-display);color:var(--ink);margin-bottom:6px;font-size:22px}.modal-sub{color:var(--ink-60);margin-bottom:24px;font-size:14px}.wifi-contribute-quota-hint{color:var(--ink-60);border-radius:var(--radius-md);background:var(--brand-xlight);letter-spacing:.01em;border:1px solid #4a3fa81f;margin:-12px 0 18px;padding:10px 14px;font-size:13px;line-height:1.45}.form-group{margin-bottom:18px}.form-label{color:var(--ink-80);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.form-input{width:100%;font-family:var(--font-body);color:var(--ink);background:var(--cream);border:1.5px solid var(--border);border-radius:var(--radius-md);outline:none;padding:12px 16px;font-size:15px;transition:border-color .2s}.form-input:focus{border-color:var(--brand)}.form-input:disabled{opacity:.55;cursor:not-allowed;background:var(--ink-04,#0000000a)}.form-input::placeholder{color:var(--ink-30)}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.btn-submit{background:var(--brand);color:#fff;border-radius:var(--radius-pill);cursor:pointer;border:none;width:100%;margin-top:8px;padding:14px;font-size:15px;font-weight:600;transition:all .2s;box-shadow:0 4px 14px #4a3fa84d}.btn-submit:hover{background:var(--brand-mid)}.wifi-contribute-unauth{text-align:center;margin:4px 0 10px}.wifi-contribute-unauth-msg{color:var(--ink-70);letter-spacing:.01em;margin:0 0 14px;font-size:15px;line-height:1.5}.wifi-login-cta{box-sizing:border-box;justify-content:center;align-items:center;text-decoration:none;display:flex}.wifi-contribute-soft-limit{margin:6px 0 14px}.wifi-contribute-soft-limit-inner{border-radius:var(--radius-md);background:linear-gradient(135deg,#fff9e8 0%,#fdf3de 100%);border:1px solid #c47c152e;flex-direction:column;gap:6px;padding:14px 16px;display:flex;box-shadow:0 2px 10px #c47c1514}.wifi-contribute-soft-limit-mascot{opacity:.92;filter:saturate(.95);font-size:26px;line-height:1}.wifi-contribute-soft-limit-title{color:var(--ink-80);letter-spacing:.01em;margin:0;font-size:15px;font-weight:600;line-height:1.45}.wifi-contribute-soft-limit-countdown{color:var(--ink-60);margin:0;font-size:14px;line-height:1.4}.btn-submit:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;background:var(--ink-30);transform:none}.btn-submit:disabled:hover{background:var(--ink-30)}.modal-close{width:32px;height:32px;color:var(--ink-30);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:flex;position:absolute;top:20px;right:20px}.modal-close:hover{background:var(--ink-10);color:var(--ink-60)}.modal-close svg{width:18px;height:18px}@media (width>=720px){.modal-backdrop{align-items:center}.modal-sheet{border-radius:var(--radius-xl)}}@media (width<=720px){.hero{padding:36px 20px 32px}.hero-mascot{font-size:36px}.hero-h1{font-size:28px}.hero-sub{margin-bottom:20px;font-size:14px}.search-input{border-radius:var(--radius-lg);padding:15px 46px 15px 44px;font-size:15px}.search-icon{width:18px;height:18px;left:14px}.search-shortcut{display:none}.hero-stats{flex-wrap:wrap;gap:14px}.hero-stat{font-size:12px}.results-section{padding:16px 16px 80px}.wifi-grid{grid-template-columns:1fr;gap:12px}.wifi-card{padding:16px}.wifi-pass-value{font-size:18px}.btn-copy-pass{padding:9px 18px;font-size:13px}.modal-sheet{padding:24px 20px 28px}}.wifi-no-pass{color:var(--ink-30);font-size:14px;font-style:italic}.btn-add-pass{border-radius:var(--radius-pill);background:var(--brand-xlight);color:var(--brand);align-items:center;gap:4px;padding:5px 12px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.btn-add-pass:hover{background:var(--brand-light)}.btn-add-pass svg{width:12px;height:12px}.wifi-card[data-wifi-slug]{cursor:pointer}.wifi-detail-backdrop{-webkit-backdrop-filter:blur(6px);z-index:1010;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s var(--ease-out,ease), visibility .28s;background:#1a1a2e70;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.wifi-detail-backdrop.open{opacity:1;visibility:visible;pointer-events:auto}.wifi-detail-sheet{background:var(--surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:520px;max-height:88vh;padding:28px 28px 32px;position:relative;overflow-y:auto;box-shadow:0 24px 80px #1a1a2e24,inset 0 0 0 1px #ffffff80}.wifi-detail-thumb{text-align:center;margin-bottom:8px;font-size:40px}.wifi-detail-title{font-family:var(--font-display);color:var(--ink);text-align:center;margin:0 0 8px;font-size:22px;line-height:1.25}.wifi-detail-meta{color:var(--ink-60);text-align:center;margin-bottom:18px;font-size:13px;line-height:1.45}.wifi-detail-pass-area{margin-bottom:16px}.wifi-detail-footer-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.wifi-detail-contribute{border-radius:var(--radius-pill);background:var(--cream);width:100%;color:var(--brand);cursor:pointer;border:1.5px solid #4a3fa840;justify-content:center;align-items:center;gap:8px;margin-bottom:18px;padding:12px 16px;font-size:14px;font-weight:600;transition:background .15s;display:inline-flex}.wifi-detail-contribute:hover{background:var(--brand-xlight)}.wifi-detail-related-title{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-60);margin-bottom:10px;font-size:12px;font-weight:700}.wifi-detail-related-list{flex-wrap:wrap;gap:8px;display:flex}.wifi-detail-related-chip{cursor:pointer;border-radius:var(--radius-pill);background:var(--brand-xlight);color:var(--brand);border:none;padding:8px 14px;font-size:13px;font-weight:600;transition:background .15s}.wifi-detail-related-chip:hover{background:var(--brand-light)}@media (width>=720px){.wifi-detail-backdrop{align-items:center}.wifi-detail-sheet{border-radius:var(--radius-xl)}}
