@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Playfair+Display:ital,wght@0,400;0,500;1,400&display=swap");:root{--p-bg:#faf8f6;--p-surface:#fff;--p-surface-soft:#f4f1ed;--p-text-primary:#2f2f32;--p-text-secondary:#6f6a64;--p-text-muted:#9c948b;--p-brand:#d8be9b;--p-brand-dark:#b99c76;--p-pin:#d95c4f;--p-map-blue:#bfd3e6;--p-map-green:#afc9b0;--p-border:#e8e2db;--p-border-soft:#f0ebe6;--p-r-sm:12px;--p-r-md:16px;--p-r-lg:24px;--p-r-xl:28px;--p-shadow-card:0 10px 30px rgba(41,32,24,.06);--p-shadow-hover:0 14px 40px rgba(41,32,24,.1);--p-font-body:"Inter",system-ui,sans-serif;--p-font-display:"Playfair Display",Georgia,serif;--bg:#0d1117;--bg-2:#131920;--surface:#1a2230;--border:hsla(0,0%,100%,.06);--text-primary:#e8e4dc;--text-muted:hsla(40,21%,89%,.45);--accent:#c8a96e;--accent-light:#e0c590;--accent-dim:hsla(39,45%,61%,.18);--country-base:#1e2d42;--country-hover:#26384f;--country-visited:#c8a96e;--country-visited-hover:#dbbf82;--ocean:#0d1a26;--font-display:"Playfair Display",Georgia,serif;--font-body:"DM Sans",system-ui,sans-serif;--header-h:72px;--max-width:1400px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased}body{background:var(--p-bg);color:var(--p-text-primary);font-family:var(--p-font-body);min-height:100dvh;overflow-x:hidden;text-size-adjust:100%}.header{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--header-h);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(1.5rem,4vw,3rem);grid-gap:1rem;gap:1rem;border-bottom:1px solid var(--p-border);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:hsla(30,29%,97%,.92)}.header-logo{font-family:var(--p-font-display);font-size:1.2rem;font-weight:400;letter-spacing:.02em;color:var(--p-text-primary);display:flex;align-items:center;gap:.5rem}.header-logo span{color:var(--accent)}.header-right{display:flex;align-items:center;gap:.5rem;justify-self:end}.hdr-notif-wrap{position:relative}.hdr-notif-dropdown{position:absolute;top:calc(100% + 8px);right:0;z-index:300;width:280px;background:var(--bg-2);border:1px solid hsla(0,0%,100%,.09);border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,.5);overflow:hidden;animation:hdrDdIn .12s cubic-bezier(.16,1,.3,1)}.hdr-notif-header{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem .5rem;font-size:.75rem;font-weight:500;color:var(--text-primary);border-bottom:1px solid var(--border)}.hdr-notif-action{background:transparent;border:none;cursor:pointer;font-size:.68rem;color:var(--accent);font-family:var(--font-body);padding:0}.hdr-notif-action:hover{text-decoration:underline}.hdr-notif-body{padding:.25rem 0}.hdr-notif-item{display:flex;align-items:center;gap:.6rem;width:100%;padding:.6rem 1rem;font-family:var(--font-body);font-size:.78rem;font-weight:300;color:var(--text-muted);background:transparent;border:none;cursor:pointer;text-align:left;transition:background .12s,color .12s}.hdr-notif-item:hover{background:hsla(0,0%,100%,.045);color:var(--text-primary)}.hdr-notif-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}.hdr-notif-empty{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 1rem;color:var(--text-muted);font-size:.78rem;font-weight:300}.hdr-notif-empty svg{opacity:.3}@media (max-width:640px){.hdr-notif-dropdown{width:220px;right:-.25rem}.hdr-notif-header{padding:.45rem .75rem .4rem;font-size:.7rem}.hdr-notif-empty{padding:.9rem .75rem;gap:.35rem;font-size:.72rem}.hdr-notif-empty svg{width:18px;height:18px}.hdr-notif-item{padding:.5rem .75rem;font-size:.74rem}}.hdr-icon-btn{position:relative;background:transparent;border:1px solid var(--border);border-radius:50%;width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;transition:color .15s,border-color .15s;flex-shrink:0}.hdr-icon-btn:hover{color:var(--text-primary);border-color:hsla(0,0%,100%,.15)}.hdr-badge{position:absolute;top:-4px;right:-4px;background:var(--accent);color:var(--bg);font-size:.55rem;font-weight:700;border-radius:999px;min-width:15px;height:15px;display:flex;align-items:center;justify-content:center;padding:0 2px}.hdr-avatar-wrap{position:relative}.hdr-avatar{width:34px;height:34px;border-radius:50%;background:var(--accent-dim);border:1.5px solid hsla(39,45%,61%,.4);color:var(--accent);font-family:var(--font-display);font-size:.9rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s;flex-shrink:0}.hdr-avatar:hover{border-color:var(--accent);background:hsla(39,45%,61%,.22)}.hdr-dropdown{position:absolute;top:calc(100% + 8px);right:0;z-index:300;min-width:175px;background:var(--bg-2);border:1px solid hsla(0,0%,100%,.09);border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,.5);overflow:hidden;animation:hdrDdIn .12s cubic-bezier(.16,1,.3,1)}@keyframes hdrDdIn{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.hdr-dd-identity{display:flex;align-items:center;gap:.65rem;padding:.75rem 1rem .65rem}.hdr-dd-avatar-sm{width:28px;height:28px;border-radius:50%;background:var(--accent-dim);border:1px solid hsla(39,45%,61%,.35);color:var(--accent);font-family:var(--font-display);font-size:.78rem;font-weight:500;display:flex;align-items:center;justify-content:center;flex-shrink:0}.hdr-dd-identity-info{display:flex;flex-direction:column;gap:.05rem;overflow:hidden}.hdr-dd-username{font-size:.78rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hdr-dd-role{font-size:.65rem;font-weight:300;color:var(--text-muted);letter-spacing:.03em}.hdr-dd-icon{width:16px;justify-content:center;flex-shrink:0;opacity:.6}.hdr-dd-icon,.hdr-dd-item{display:flex;align-items:center}.hdr-dd-item{gap:.6rem;width:100%;padding:.52rem 1rem;font-family:var(--font-body);font-size:.79rem;font-weight:300;color:var(--text-muted);background:transparent;border:none;text-decoration:none;cursor:pointer;text-align:left;transition:background .12s,color .12s}.hdr-dd-item:hover{background:hsla(0,0%,100%,.045);color:var(--text-primary)}.hdr-dd-item:hover .hdr-dd-icon{opacity:1}.hdr-dd-divider{height:1px;background:var(--border);margin:.2rem 0}.hdr-dd-logout{color:rgba(224,92,92,.75)}.hdr-dd-logout .hdr-dd-icon{opacity:.55}.hdr-dd-logout:hover{background:rgba(224,92,92,.07);color:#e05c5c}.hdr-dd-logout:hover .hdr-dd-icon{opacity:1}@media (max-width:640px){.hdr-avatar,.hdr-icon-btn{width:30px;height:30px;font-size:.82rem}.hdr-dropdown{right:-.5rem;min-width:160px}}.stat-value{font-family:var(--font-display);font-size:1.15rem;font-weight:500;color:var(--p-brand-dark);line-height:1.1}.stat-label{font-size:.68rem;font-weight:300;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase}.stat-divider{width:1px;height:2rem;background:var(--border)}.main{padding-top:var(--header-h);min-height:100dvh;display:flex;flex-direction:column}.map-outer{flex:1 1;position:relative;background:var(--ocean)}.map-container{position:absolute;top:0;left:0;width:100%;height:100%}.maplibregl-ctrl-attrib,.maplibregl-ctrl-group,.maplibregl-ctrl-logo{display:none!important}.map-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--ocean);font-size:.78rem;font-weight:300;color:var(--text-muted);letter-spacing:.06em;z-index:10;animation:fadeIn .3s ease}.tooltip{position:fixed;z-index:200;pointer-events:none;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.4rem .75rem;font-size:.8rem;font-weight:400;color:var(--text-primary);white-space:nowrap;box-shadow:0 8px 24px rgba(0,0,0,.4);transform:translate(12px,-50%);transition:opacity .1s ease}.tooltip.visited{border-color:var(--accent-dim);color:var(--accent)}.tooltip-flag{margin-right:.35rem}.footer-hint{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:.45rem 1.1rem;font-size:.72rem;font-weight:300;color:var(--text-muted);letter-spacing:.04em;pointer-events:none;white-space:nowrap;animation:fadeIn 1.5s ease 1s both}@keyframes fadeIn{0%{opacity:0;transform:translateX(-50%) translateY(6px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.reset-btn{position:fixed;bottom:1.5rem;right:clamp(1rem,3vw,2rem);background:transparent;border:1px solid var(--border);border-radius:6px;padding:.45rem .85rem;font-family:var(--font-body);font-size:.72rem;font-weight:400;color:var(--text-muted);cursor:pointer;letter-spacing:.04em;transition:color .2s,border-color .2s,background .2s;z-index:50}.reset-btn:hover{color:#e05c5c;border-color:rgba(224,92,92,.4);background:rgba(224,92,92,.06)}.intro-badge{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;animation:fadeIn .8s ease .3s both}.intro-badge h1{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,3rem);font-weight:400;color:var(--text-primary);line-height:1.2;margin-bottom:.5rem}.intro-badge h1 em{font-style:italic;color:var(--accent)}.intro-badge p{font-size:.85rem;color:var(--text-muted);font-weight:300}.search-trigger{display:flex;align-items:center;gap:.5rem;background:var(--p-surface-soft);border:1px solid var(--p-border);border-radius:var(--p-r-sm);padding:.38rem .9rem;font-family:var(--p-font-body);font-size:.78rem;font-weight:300;color:var(--p-text-muted);cursor:pointer;letter-spacing:.02em;transition:color .2s,border-color .2s,background .2s;white-space:nowrap}.search-trigger:hover{color:var(--p-text-primary);border-color:var(--p-brand);background:var(--p-surface)}.search-trigger kbd{background:hsla(0,0%,100%,.07);border:1px solid var(--border);border-radius:4px;padding:.1em .4em;font-size:.68rem;font-family:var(--font-body);line-height:1.6}.search-overlay{position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:flex-start;justify-content:center;padding-top:clamp(4rem,10vh,8rem);animation:overlayIn .15s ease}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.search-panel{width:min(560px,calc(100vw - 2rem));background:var(--bg-2);border:1px solid hsla(0,0%,100%,.1);border-radius:12px;overflow:hidden;box-shadow:0 24px 72px rgba(0,0,0,.65);animation:panelIn .18s cubic-bezier(.16,1,.3,1)}@keyframes panelIn{0%{opacity:0;transform:translateY(-10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.search-input-row{display:flex;align-items:center;gap:.6rem;padding:.9rem 1rem;border-bottom:1px solid var(--border)}.search-row-icon{color:var(--text-muted);flex-shrink:0}.search-input{flex:1 1;background:none;border:none;outline:none;font-family:var(--font-body);font-size:.95rem;font-weight:300;color:var(--text-primary);min-width:0}.search-input::placeholder{color:var(--text-muted)}.search-esc{flex-shrink:0;background:hsla(0,0%,100%,.06);border:1px solid var(--border);border-radius:5px;padding:.15em .5em;font-size:.7rem;font-family:var(--font-body);color:var(--text-muted);cursor:pointer;transition:background .15s}.search-esc:hover{background:hsla(0,0%,100%,.1)}.search-list{list-style:none;max-height:min(380px,50vh);overflow-y:auto;overscroll-behavior:contain}.search-list::-webkit-scrollbar{width:4px}.search-list::-webkit-scrollbar-track{background:transparent}.search-list::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.1);border-radius:2px}.search-item{display:flex;align-items:center;gap:.65rem;padding:.7rem 1rem;cursor:pointer;transition:background .1s;border-bottom:1px solid hsla(0,0%,100%,.025)}.search-item.is-highlighted,.search-item:hover{background:hsla(0,0%,100%,.045)}.search-item-check,.search-item.is-visited .search-item-name{color:var(--accent)}.search-item-check{width:1rem;text-align:center;font-size:.78rem;flex-shrink:0}.search-item-name{flex:1 1;font-size:.875rem;font-weight:300;color:var(--text-primary)}.search-item-hint{font-size:.7rem;color:var(--text-muted);opacity:0;transition:opacity .12s;white-space:nowrap}.search-item.is-highlighted .search-item-hint,.search-item:hover .search-item-hint{opacity:1}.search-empty{padding:2.5rem 1rem;text-align:center;color:var(--text-muted);font-size:.85rem;font-weight:300}.search-footer{display:flex;gap:1.25rem;padding:.55rem 1rem;border-top:1px solid var(--border);font-size:.66rem;color:var(--text-muted);letter-spacing:.035em}.zoom-controls{position:absolute;right:clamp(.75rem,2.5vw,1.5rem);bottom:clamp(3.5rem,8vh,5rem);display:flex;flex-direction:column;gap:.3rem;z-index:50}.zoom-btn{width:36px;height:36px;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text-muted);font-size:1.15rem;font-weight:300;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s,border-color .2s,background .2s;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);line-height:1;touch-action:manipulation}.zoom-btn:hover{color:var(--text-primary);border-color:hsla(0,0%,100%,.14);background:hsla(0,0%,100%,.07)}.zoom-btn--reset{margin-top:.25rem;border-top-color:hsla(0,0%,100%,.04)}@media (max-width:640px){.header{grid-template-columns:auto 1fr auto;padding:0 1rem;gap:.5rem}.header-logo{font-size:1rem}.add-city-label,.search-trigger kbd,.search-trigger-label{display:none}.add-city-btn,.search-trigger{padding:.45rem;border-radius:8px}.stat-value{font-size:1rem}.stat-label{font-size:.62rem}.footer-hint{display:none}.zoom-btn{width:42px;height:42px;font-size:1.3rem}.search-panel{width:calc(100vw - 1rem);border-radius:10px}.search-item{padding:.85rem 1rem}.search-footer,.search-item-hint{display:none}}.tooltip-hint{font-size:.7rem;opacity:.6;margin-left:.25rem}.admin-bar{position:fixed;top:var(--header-h);left:0;right:0;z-index:90;height:36px;justify-content:space-between;padding:0 clamp(1.5rem,4vw,3rem);background:hsla(39,45%,61%,.07);border-bottom:1px solid hsla(39,45%,61%,.18);font-size:.72rem;font-weight:400;letter-spacing:.04em}.admin-bar,.admin-bar-label{display:flex;align-items:center}.admin-bar-label{color:var(--accent);gap:.5rem}.save-badge{font-weight:300;transition:color .3s}.save-badge--saving{color:var(--text-muted)}.save-badge--saved{color:#7ec87e}.save-badge--error{color:#e05c5c}.save-badge--idle{display:none}.admin-logout-btn{background:transparent;border:1px solid var(--border);border-radius:5px;padding:.25rem .65rem;font-family:var(--font-body);font-size:.68rem;color:var(--text-muted);cursor:pointer;transition:color .2s,border-color .2s}.admin-logout-btn:hover{color:var(--text-primary);border-color:hsla(0,0%,100%,.14)}.admin-loading{height:calc(100dvh - var(--header-h));font-size:.85rem;font-weight:300;color:var(--text-muted);letter-spacing:.05em}.admin-loading,.login-page{display:flex;align-items:center;justify-content:center}.login-page{min-height:100dvh;background:var(--bg);padding:1.5rem}.login-card{width:min(400px,100%);background:var(--bg-2);border:1px solid var(--border);border-radius:14px;padding:clamp(2rem,5vw,3rem);display:flex;flex-direction:column;align-items:center;gap:.5rem;box-shadow:0 24px 64px rgba(0,0,0,.4)}.login-logo{font-family:var(--font-display);font-size:1.4rem;font-weight:400;color:var(--text-primary);margin-bottom:.25rem}.login-logo span{color:var(--accent)}.login-subtitle{font-size:.75rem;font-weight:300;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:1.5rem}.login-form{width:100%;display:flex;flex-direction:column;gap:.65rem}.login-label{font-size:.72rem;font-weight:400;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase}.login-input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.7rem .9rem;font-family:var(--font-body);font-size:.95rem;color:var(--text-primary);outline:none;transition:border-color .2s}.login-input:focus{border-color:hsla(39,45%,61%,.45)}.login-input--error{border-color:rgba(224,92,92,.5)}.login-error{font-size:.75rem;color:#e05c5c;font-weight:300}.login-btn{width:100%;background:var(--accent);border:none;border-radius:8px;padding:.75rem;font-family:var(--font-body);font-size:.88rem;font-weight:500;color:var(--bg);cursor:pointer;transition:background .2s,opacity .2s;letter-spacing:.02em;margin-top:.5rem}.login-btn:hover:not(:disabled){background:var(--accent-light)}.login-btn:disabled{opacity:.45;cursor:not-allowed}.login-back{margin-top:1rem;font-size:.75rem;font-weight:300;color:var(--text-muted);text-decoration:none;transition:color .2s}.login-back:hover{color:var(--text-primary)}.profile-bar{position:fixed;top:var(--header-h);left:0;right:0;z-index:95;height:40px;display:flex;align-items:center;justify-content:center;gap:.25rem;padding:0 1rem;background:rgba(13,17,23,.9);border-bottom:1px solid var(--border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.profile-tab{height:26px;padding:0 .9rem;background:transparent;border:1px solid transparent;border-radius:999px;font-family:var(--font-body);font-size:.75rem;font-weight:400;color:var(--text-muted);cursor:pointer;letter-spacing:.03em;transition:color .18s,border-color .18s,background .18s;white-space:nowrap}.profile-tab:hover{color:var(--text-primary);border-color:var(--border)}.profile-tab.is-active{background:var(--accent-dim);border-color:hsla(39,45%,61%,.3);color:var(--accent);font-weight:500}.profile-tab.is-computed{margin-left:.5rem;padding-left:1.1rem;border-left-color:var(--border)}.main:has(.profile-bar) .admin-bar{top:calc(var(--header-h) + 40px)}.map-outer--loading .map-container{opacity:.45;transition:opacity .2s ease}@media (max-width:640px){.profile-tab{font-size:.7rem;padding:0 .65rem}}.header-center{gap:.5rem;justify-content:center}.add-city-btn,.header-center{display:flex;align-items:center}.add-city-btn{gap:.45rem;background:var(--surface);border:1px solid rgba(224,92,92,.25);border-radius:8px;padding:.38rem .9rem;font-family:var(--font-body);font-size:.78rem;font-weight:300;color:rgba(224,92,92,.75);cursor:pointer;letter-spacing:.02em;transition:color .2s,border-color .2s,background .2s;white-space:nowrap}.add-city-btn:hover{color:#e05c5c;border-color:rgba(224,92,92,.5);background:rgba(224,92,92,.06)}.city-result-body{flex:1 1;display:flex;flex-direction:column;gap:.1rem}.city-result-sub{font-size:.68rem;font-weight:300;color:var(--text-muted);letter-spacing:.02em}.city-pin-dot{color:#e05c5c;font-size:1.1rem;line-height:1}.city-confirm-header{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid var(--border)}.city-back-btn{background:transparent;border:1px solid var(--border);border-radius:6px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;font-size:.85rem;flex-shrink:0;transition:color .15s,border-color .15s}.city-back-btn:hover{color:var(--text-primary);border-color:hsla(0,0%,100%,.14)}.city-confirm-name{display:flex;flex-direction:column;gap:.1rem}.city-confirm-name strong{font-size:.9rem;font-weight:500;color:var(--text-primary)}.city-confirm-country{font-size:.7rem;font-weight:300;color:var(--text-muted)}.transport-section{padding:1.1rem 1rem .5rem}.transport-label{font-size:.72rem;font-weight:300;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.7rem}.transport-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:.4rem;gap:.4rem}.transport-btn{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.6rem .3rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s}.transport-btn:hover{border-color:hsla(0,0%,100%,.12);background:hsla(0,0%,100%,.04)}.transport-btn.is-active{border-color:hsla(39,45%,61%,.5);background:var(--accent-dim)}.transport-emoji{font-size:1.3rem;line-height:1}.transport-text{font-size:.62rem;font-weight:300;color:var(--text-muted);letter-spacing:.03em}.transport-btn.is-active .transport-text{color:var(--accent)}.city-confirm-footer{padding:.85rem 1rem 1rem;border-top:1px solid var(--border)}.city-confirm-btn{width:100%;background:var(--accent);border:none;border-radius:8px;padding:.7rem;font-family:var(--font-body);font-size:.85rem;font-weight:500;color:var(--bg);cursor:pointer;transition:background .2s}.city-confirm-btn:hover{background:var(--accent-light)}.city-tooltip{display:flex;align-items:center;gap:.35rem;border-color:rgba(224,92,92,.3)}.city-tooltip-pin{font-size:.85rem}.city-tooltip-name{font-weight:400;color:var(--text-primary)}.city-tooltip-transport{font-size:.85rem}.city-tooltip-remove{background:transparent;border:1px solid rgba(224,92,92,.35);border-radius:4px;color:rgba(224,92,92,.7);font-size:.65rem;line-height:1;padding:.15em .4em;cursor:pointer;margin-left:.35rem;transition:color .15s,border-color .15s,background .15s}.city-tooltip-remove:hover{color:#e05c5c;border-color:#e05c5c;background:rgba(224,92,92,.1)}@media (max-width:640px){.add-city-label{display:none}.add-city-btn{padding:.45rem}.transport-grid{grid-template-columns:repeat(5,1fr);gap:.25rem}.transport-text{display:none}.transport-emoji{font-size:1.5rem}}.year-section{padding:.6rem 1rem .9rem}.year-input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.6rem .85rem;font-family:var(--font-display);font-size:1.15rem;font-weight:400;color:var(--accent);outline:none;transition:border-color .2s;text-align:center;letter-spacing:.04em}.year-input:focus{border-color:hsla(39,45%,61%,.45)}.year-stepper{display:flex;align-items:center;width:100%;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface);transition:border-color .2s}.year-step-btn{background:transparent;border:none;border-right:1px solid var(--border);color:var(--accent);font-family:var(--font-display);font-size:1.2rem;font-weight:400;width:2.8rem;padding:.6rem 0;cursor:pointer;flex-shrink:0;transition:background .15s;line-height:1}.year-step-btn:last-child{border-right:none;border-left:1px solid var(--border)}.year-step-btn:hover{background:hsla(39,45%,61%,.08)}.year-stepper-val{flex:1 1;text-align:center;font-family:var(--font-display);font-size:1.15rem;font-weight:400;color:var(--accent);letter-spacing:.04em;pointer-events:none}.pin-panel{position:fixed;z-index:210;background:var(--surface);border:1px solid hsla(39,45%,61%,.22);border-radius:9px;box-shadow:0 10px 32px rgba(0,0,0,.5);transform:translate(14px,-50%);min-width:150px;max-width:220px;pointer-events:auto;animation:fadeIn .12s ease}.pin-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.55rem .65rem .45rem;border-bottom:1px solid var(--border);gap:.5rem}.pin-panel-city{font-size:.78rem;font-weight:500;color:var(--text-primary);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pin-panel-close{background:transparent;border:none;color:var(--text-muted);font-size:.65rem;cursor:pointer;padding:.1em .25em;line-height:1;border-radius:3px;flex-shrink:0;transition:color .15s}.pin-panel-close:hover{color:var(--text-primary)}.pin-panel-trips{list-style:none;padding:.4rem .65rem .5rem;display:flex;flex-direction:column;gap:.28rem}.pin-panel-trip{display:flex;align-items:center;gap:.4rem;width:100%}.pin-trip-emoji{font-size:.85rem;line-height:1;flex-shrink:0}.pin-trip-year{font-size:.72rem;font-weight:300;color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.04em;min-width:2.4rem}.pin-trip-remove{margin-left:auto;flex-shrink:0;background:transparent;border:1px solid rgba(224,92,92,.45);border-radius:4px;color:rgba(224,92,92,.8);font-size:.68rem;font-weight:500;padding:.2em .45em;cursor:pointer;line-height:1;transition:color .15s,border-color .15s,background .15s}.pin-trip-remove:hover{color:#e05c5c;border-color:#e05c5c;background:rgba(224,92,92,.1)}.friend-action-btn{background:var(--accent-dim);border:1px solid hsla(39,45%,61%,.3);border-radius:5px;padding:.28rem .7rem;font-family:var(--font-body);font-size:.72rem;font-weight:400;color:var(--accent);cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s;flex-shrink:0}.friend-action-btn:hover:not(:disabled){background:hsla(39,45%,61%,.25);border-color:hsla(39,45%,61%,.5)}.friend-action-btn:disabled{opacity:.45;cursor:not-allowed}.friend-action-btn--ghost{background:transparent;border-color:var(--border);color:var(--text-muted)}.friend-action-btn--ghost:hover:not(:disabled){color:var(--text-primary);border-color:hsla(0,0%,100%,.14);background:transparent}.friend-status-label{font-size:.7rem;color:var(--text-muted);font-weight:300;white-space:nowrap;flex-shrink:0}