.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-sans);font-weight:600;border-radius:var(--radius-md);transition:all var(--transition-fast);text-decoration:none;line-height:1;white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:pointer;border:1px solid transparent;gap:.5rem}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:active:not(:disabled){transform:translateY(1px)}.btn--sm{padding:.5rem .875rem;font-size:.875rem;border-radius:var(--radius-sm)}.btn--md{padding:.75rem 1.375rem;font-size:.9375rem}.btn--lg{padding:.95rem 1.875rem;font-size:1.0625rem;border-radius:var(--radius-lg)}.btn--primary{background-color:var(--color-primary);color:var(--color-text-inverse);box-shadow:0 2px 4px #0f766e33}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-hover);box-shadow:0 4px 10px #0f766e4d;transform:translateY(-1px)}.btn--secondary{background-color:var(--color-surface-subtle);color:var(--color-text-primary);border-color:var(--color-border)}.btn--secondary:hover:not(:disabled){background-color:var(--color-surface-muted);border-color:var(--color-border-hover);transform:translateY(-1px)}.btn--outline{background-color:transparent;color:var(--color-primary);border-color:var(--color-primary)}.btn--outline:hover:not(:disabled){background-color:var(--color-primary-light);transform:translateY(-1px)}.btn--ghost{background-color:transparent;color:var(--color-text-secondary)}.btn--ghost:hover:not(:disabled){background-color:var(--color-surface-muted);color:var(--color-text-primary)}.btn--disabled,.btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn__icon{flex-shrink:0;width:1.125rem;height:1.125rem;display:inline-block}.btn--sm .btn__icon{width:1rem;height:1rem}.btn--lg .btn__icon{width:1.25rem;height:1.25rem}.password-input-wrapper{position:relative;display:flex;align-items:center;width:100%;box-sizing:border-box}.password-input-icon{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted, #94a3b8);pointer-events:none;z-index:2}input.password-input-control{width:100%;height:44px;min-height:44px;box-sizing:border-box;padding:0 .85rem;border:1px solid var(--color-border, #cbd5e1);border-radius:var(--radius-md, .5rem);font-size:.875rem;color:var(--color-text, #0f172a);background-color:#fff;transition:border-color .2s ease,box-shadow .2s ease;line-height:normal}input.password-input-control:focus{outline:none;border-color:var(--color-primary, #0f766e);box-shadow:0 0 0 3px #0f766e26}.password-input-wrapper input.password-input-control{padding-right:2.75rem!important}.password-input-wrapper.has-left-icon input.password-input-control{padding-left:2.6rem!important}.password-input-toggle{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:transparent;border:none;border-radius:.375rem;color:var(--color-text-muted, #94a3b8);cursor:pointer;transition:color .15s ease,background-color .15s ease;z-index:2}.password-input-toggle:hover:not(:disabled){color:var(--color-text, #0f172a);background-color:#0000000d}.password-input-toggle:focus-visible{outline:2px solid var(--color-primary, #0f766e);outline-offset:1px}.password-input-toggle:disabled{cursor:not-allowed;opacity:.5}.google-signin-wrapper{width:100%;margin-bottom:.5rem}.google-signin-gis-container{width:100%;display:flex;justify-content:center}.google-signin-gis-container iframe{margin:0 auto!important;border-radius:var(--radius-md, 10px)!important}.google-signin-gis-container.is-disabled{pointer-events:none;opacity:.6}.google-btn-custom{width:100%;height:44px;display:flex;align-items:center;justify-content:center;gap:.75rem;background-color:#fff;border:1px solid #dadce0;border-radius:var(--radius-md, 10px);color:#3c4043;font-family:Plus Jakarta Sans,Roboto,-apple-system,sans-serif;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast, .15s ease);padding:0 1rem;box-shadow:0 1px 2px #0000000d}.google-btn-custom:hover:not(:disabled){background-color:#f8fafc;border-color:#c2c7d0;box-shadow:0 2px 4px #00000014}.google-btn-custom:focus-visible{outline:2px solid #4285f4;outline-offset:2px}.google-btn-custom:disabled{opacity:.65;cursor:not-allowed}.google-btn__logo{flex-shrink:0}.google-btn-text{letter-spacing:.01em}.brand-logo{display:block;height:auto;object-fit:contain;max-width:100%;-webkit-user-select:none;user-select:none;transition:opacity var(--transition-fast, .2s ease),transform var(--transition-fast, .2s ease)}.brand-logo__btn-wrapper{background:none;border:none;padding:0;margin:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;line-height:0;border-radius:var(--radius-sm, 6px);transition:opacity var(--transition-fast, .2s ease),transform var(--transition-fast, .2s ease)}.brand-logo__btn-wrapper:hover .brand-logo{opacity:.92;transform:translateY(-1px)}.brand-logo__btn-wrapper:focus-visible{outline:2px solid var(--color-primary, #0f766e);outline-offset:4px}.brand-logo--horizontal,.brand-logo--header{width:180px;max-width:180px;max-height:115px;height:auto;flex-shrink:0}@media (max-width: 1024px){.brand-logo--horizontal,.brand-logo--header{width:155px;max-width:155px;max-height:98px}}@media (max-width: 768px){.brand-logo--horizontal,.brand-logo--header{width:135px;max-width:135px;max-height:85px}}@media (max-width: 380px){.brand-logo--horizontal,.brand-logo--header{width:120px;max-width:120px;max-height:76px}}.brand-logo--extended,.brand-logo--footer{width:250px;max-width:250px;max-height:90px;height:auto;flex-shrink:0}@media (max-width: 768px){.brand-logo--extended,.brand-logo--footer{width:210px;max-width:100%;max-height:80px}}@media (max-width: 380px){.brand-logo--extended,.brand-logo--footer{width:180px;max-width:100%;max-height:68px}}.brand-logo--vertical,.brand-logo--login,.brand-logo--auth{width:240px;max-width:240px;max-height:175px;height:auto;margin-left:auto;margin-right:auto;flex-shrink:0}@media (max-width: 768px){.brand-logo--vertical,.brand-logo--login,.brand-logo--auth{width:200px;max-width:80vw;max-height:145px}}@media (max-width: 380px){.brand-logo--vertical,.brand-logo--login,.brand-logo--auth{width:175px;max-width:75vw;max-height:128px}}.brand-logo--recovery,.brand-logo--reset{width:190px;max-width:190px;max-height:140px;height:auto;margin-left:auto;margin-right:auto;flex-shrink:0}@media (max-width: 768px){.brand-logo--recovery,.brand-logo--reset{width:165px;max-width:75vw;max-height:120px}}@media (max-width: 380px){.brand-logo--recovery,.brand-logo--reset{width:145px;max-width:70vw;max-height:105px}}.brand-logo--symbol{width:44px;height:44px;max-width:44px;max-height:44px;flex-shrink:0}.brand-logo--admin-sidebar,.brand-logo--sidebar{width:170px;max-width:170px;max-height:110px;height:auto;flex-shrink:0}@media (max-width: 768px){.brand-logo--admin-sidebar,.brand-logo--sidebar{width:150px;max-width:150px;max-height:98px}}.auth-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172abf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:1100;padding:1rem;animation:fadeIn .2s ease-out}.auth-modal-card{background:var(--color-bg-card, #ffffff);border-radius:var(--radius-xl, 1rem);width:100%;max-width:440px;box-shadow:0 25px 50px -12px #00000040;border:1px solid var(--color-border, #e2e8f0);overflow:hidden;animation:scaleUp .25s cubic-bezier(.16,1,.3,1)}.auth-modal__header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--color-border, #e2e8f0)}.auth-brand{display:flex;align-items:center;gap:.85rem}.auth-brand__info{display:flex;flex-direction:column}.auth-brand__badge{display:inline-block;font-size:.72rem;font-weight:700;color:var(--color-primary, #0f766e);text-transform:uppercase;letter-spacing:.06em;background:var(--color-primary-light, #f0fdfa);border:1px solid var(--color-primary-border, #ccfbf1);padding:.15rem .55rem;border-radius:9999px;width:fit-content}.auth-brand__sub{font-size:.8125rem;color:var(--color-text-muted, #64748b);margin:.25rem 0 0}.auth-modal__close{background:transparent;border:none;color:var(--color-text-muted, #64748b);cursor:pointer;padding:.4rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}.auth-modal__close:hover{background:var(--color-bg-alt, #f1f5f9);color:var(--color-text, #0f172a)}.auth-modal__tabs{display:flex;background:var(--color-bg-alt, #f8fafc);border-bottom:1px solid var(--color-border, #e2e8f0);padding:.35rem;gap:.35rem}.auth-tab-btn{flex:1;padding:.65rem 1rem;font-size:.875rem;font-weight:600;border:none;background:transparent;color:var(--color-text-muted, #64748b);border-radius:var(--radius-md, .5rem);cursor:pointer;transition:all .2s ease}.auth-tab-btn--active{background:#fff;color:var(--color-primary, #0f766e);box-shadow:0 2px 4px #0000000f}.auth-form{padding:1.5rem;display:flex;flex-direction:column;gap:1.15rem}.auth-social-section{display:flex;flex-direction:column;gap:.85rem;width:100%}.auth-divider{display:flex;align-items:center;width:100%;margin:.15rem 0;text-align:center}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1px solid var(--color-border, #e2e8f0)}.auth-divider span{padding:0 .85rem;font-size:.75rem;font-weight:600;color:var(--color-text-muted, #94a3b8);text-transform:uppercase;letter-spacing:.06em}.auth-form__group{display:flex;flex-direction:column;gap:.4rem}.auth-form__group label{font-size:.8125rem;font-weight:600;color:var(--color-text, #334155)}.auth-label-row{display:flex;justify-content:space-between;align-items:center}.auth-link-btn{background:none;border:none;font-size:.75rem;font-weight:600;color:var(--color-primary, #0f766e);cursor:pointer;padding:0}.auth-link-btn:hover{text-decoration:underline}.auth-input-wrapper,.auth-form .password-input-wrapper{position:relative;display:flex;align-items:center;width:100%;box-sizing:border-box}.auth-input-icon,.auth-form .password-input-icon{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted, #94a3b8);pointer-events:none;z-index:2}.auth-input-wrapper input,.auth-form input.password-input-control{width:100%;height:44px;min-height:44px;box-sizing:border-box;padding:0 .85rem 0 2.6rem;border:1px solid var(--color-border, #cbd5e1);border-radius:var(--radius-md, .5rem);font-size:.875rem;color:var(--color-text, #0f172a);background:#fff;transition:border-color .2s ease,box-shadow .2s ease;line-height:normal}.auth-form .password-input-wrapper input.password-input-control{padding-right:2.75rem!important}.auth-input-wrapper input:focus,.auth-form input.password-input-control:focus{outline:none;border-color:var(--color-primary, #0f766e);box-shadow:0 0 0 3px #0f766e26}.auth-input-wrapper input::placeholder,.auth-form input.password-input-control::placeholder{color:var(--color-text-muted, #94a3b8)}.auth-form .password-input-toggle{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:transparent;border:none;border-radius:.375rem;color:var(--color-text-muted, #94a3b8);cursor:pointer;transition:color .15s ease,background-color .15s ease;z-index:2}.auth-form .password-input-toggle:hover:not(:disabled){color:var(--color-text, #0f172a);background-color:#0000000d}.auth-form .password-input-toggle:focus-visible{outline:2px solid var(--color-primary, #0f766e);outline-offset:1px}.auth-alert{margin:1rem 1.5rem 0;padding:.75rem 1rem;border-radius:var(--radius-md, .5rem);display:flex;align-items:center;gap:.6rem;font-size:.8125rem;font-weight:500}.auth-alert--error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.auth-forgot-success{padding:2rem 1.5rem;text-align:center}.auth-forgot-success__icon{width:56px;height:56px;background:#ecfdf5;color:#059669;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}.auth-forgot-success h4{font-size:1.125rem;font-weight:700;color:var(--color-text, #0f172a);margin-bottom:.5rem}.auth-forgot-success p{font-size:.875rem;color:var(--color-text-muted, #64748b);line-height:1.5}.auth-back-to-login{background:none;border:none;font-size:.8125rem;font-weight:600;color:var(--color-primary, #0f766e);cursor:pointer;text-align:center;margin-top:.5rem}.auth-back-to-login:hover{text-decoration:underline}.auth-modal__footer{padding:.85rem 1.5rem;background:var(--color-bg-alt, #f8fafc);border-top:1px solid var(--color-border, #e2e8f0)}.auth-modal__footer p{font-size:.75rem;color:var(--color-text-muted, #64748b);margin:0;line-height:1.4;text-align:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.achievement-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172acc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1200;padding:1rem;animation:fadeIn .25s ease-out}.achievement-modal-card{position:relative;background:linear-gradient(145deg,#0f172a,#1e293b);border-radius:var(--radius-xl, 1.25rem);width:100%;max-width:480px;box-shadow:0 25px 50px -12px #00000080,0 0 40px #0f766e40;border:1px solid rgba(255,255,255,.12);overflow:hidden;padding:2.25rem 2rem 2rem;text-align:center;color:#fff;animation:popIn .35s cubic-bezier(.175,.885,.32,1.275)}.achievement-modal__glow{position:absolute;top:-100px;left:50%;transform:translate(-50%);width:250px;height:250px;background:radial-gradient(circle,#14b8a666,#14b8a600 70%);pointer-events:none}.achievement-modal__close{position:absolute;top:1rem;right:1rem;background:#ffffff14;border:none;color:#94a3b8;cursor:pointer;padding:.4rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:2}.achievement-modal__close:hover{background:#fff3;color:#fff}.achievement-badge-pill{display:inline-flex;align-items:center;gap:.4rem;background:#14b8a62e;border:1px solid rgba(20,184,166,.4);color:#2dd4bf;padding:.35rem .85rem;border-radius:9999px;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.75rem}.achievement-modal__title{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;color:#fff;margin:0 0 1.5rem}.achievement-modal__list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.75rem}.achievement-unlocked-item{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg, .875rem);padding:1.25rem;display:flex;align-items:center;gap:1.15rem;text-align:left}.achievement-unlocked-icon-wrap{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#0d9488,#0f766e);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 8px 16px #0d948859;border:2px solid rgba(255,255,255,.25)}.achievement-unlocked-content{flex:1}.achievement-unlocked-name{font-size:1.0625rem;font-weight:700;color:#f8fafc;margin:0 0 .25rem}.achievement-unlocked-desc{font-size:.8125rem;color:#94a3b8;margin:0;line-height:1.4}.achievement-modal__actions{display:flex;gap:.75rem}@keyframes popIn{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.city-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background-color:#0f172aa6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1.25rem;animation:cityModalFadeIn .2s ease-out forwards}@keyframes cityModalFadeIn{0%{opacity:0}to{opacity:1}}.city-modal-card{width:100%;max-width:580px;max-height:85vh;background-color:#fff;border-radius:var(--radius-xl, 16px);box-shadow:0 20px 40px -15px #00000040,0 0 0 1px #0f766e14;display:flex;flex-direction:column;overflow:hidden;animation:cityModalScaleUp .22s cubic-bezier(.16,1,.3,1) forwards}@keyframes cityModalScaleUp{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.city-modal-header{padding:1.5rem 1.75rem 1.25rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-border, #e2e8f0)}.city-modal-header__title-group{display:flex;align-items:center;gap:.875rem}.city-modal-header__icon-badge{width:44px;height:44px;border-radius:12px;background-color:var(--color-primary-light, #f0fdfa);display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid rgba(15,118,110,.15);overflow:hidden}.city-modal-header__icon-badge .brand-logo{object-fit:contain}.city-modal-title{margin:0;font-size:1.25rem;font-weight:800;color:var(--color-text-primary, #0f172a);line-height:1.25;letter-spacing:-.015em}.city-modal-subtitle{margin:.2rem 0 0;font-size:.875rem;color:var(--color-text-secondary, #64748b);line-height:1.4}.city-modal-close-btn{background:transparent;border:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted, #64748b);cursor:pointer;transition:all var(--transition-fast, .15s ease)}.city-modal-close-btn:hover{background-color:#f1f5f9;color:var(--color-text-primary, #0f172a)}.city-modal-close-btn:focus-visible{outline:2px solid var(--color-primary, #0f766e);outline-offset:2px}.city-modal-search-box{padding:1rem 1.75rem .5rem}.city-modal-search-input-wrap{position:relative;display:flex;align-items:center;width:100%}.city-modal-search-icon{position:absolute;left:1rem;color:var(--color-text-muted, #94a3b8);pointer-events:none}.city-modal-search-input{width:100%;padding:.75rem 2.5rem .75rem 2.75rem;border-radius:var(--radius-md, 10px);border:1.5px solid var(--color-border, #cbd5e1);background-color:#f8fafc;color:var(--color-text-primary, #0f172a);font-size:.9375rem;outline:none;transition:all var(--transition-fast, .15s ease)}.city-modal-search-input:focus{border-color:var(--color-primary, #0f766e);background-color:#fff;box-shadow:0 0 0 3px #0f766e1f}.city-modal-search-clear{position:absolute;right:.75rem;background:none;border:none;color:var(--color-text-muted, #94a3b8);cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:50%}.city-modal-search-clear:hover{color:var(--color-text-primary, #0f172a)}.city-modal-geo-section{padding:.5rem 1.75rem .875rem}.city-modal-geo-btn{width:100%;display:flex;align-items:center;gap:.875rem;padding:.75rem 1rem;border-radius:var(--radius-md, 10px);background-color:var(--color-primary-light, #f0fdfa);border:1.5px dashed rgba(15,118,110,.35);cursor:pointer;text-align:left;transition:all var(--transition-fast, .15s ease)}.city-modal-geo-btn:hover:not(:disabled){background-color:#ccfbf1;border-color:var(--color-primary, #0f766e);transform:translateY(-1px)}.city-modal-geo-btn:focus-visible{outline:2px solid var(--color-primary, #0f766e);outline-offset:2px}.city-modal-geo-btn--loading{opacity:.85;cursor:wait}.city-modal-geo-btn__icon{width:36px;height:36px;border-radius:50%;background-color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 4px #0000000d}.city-modal-geo-btn__texts{display:flex;flex-direction:column;min-width:0}.city-modal-geo-btn__title{font-size:.875rem;font-weight:700;color:var(--color-primary, #0f766e)}.city-modal-geo-btn__desc{font-size:.75rem;color:var(--color-text-secondary, #64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.city-modal-feedback{margin-top:.5rem;padding:.6rem .85rem;border-radius:var(--radius-sm, 6px);font-size:.8125rem;display:flex;align-items:center;gap:.5rem;line-height:1.4}.city-modal-feedback--success{background-color:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.city-modal-feedback--warning{background-color:#fffbeb;color:#92400e;border:1px solid #fde68a}.city-modal-feedback--error{background-color:#fef2f2;color:#991b1b;border:1px solid #fecaca}.city-modal-body{flex:1;overflow-y:auto;padding:.25rem 1.75rem 1.25rem;max-height:380px}.city-modal-list-header{margin-bottom:.65rem}.city-modal-list-title{font-size:.6875rem;font-weight:700;color:var(--color-text-muted, #64748b);letter-spacing:.06em;text-transform:uppercase}.city-modal-loading{padding:3rem 1rem;text-align:center;color:var(--color-text-secondary, #64748b);display:flex;flex-direction:column;align-items:center;gap:.75rem;font-size:.875rem}.city-modal-empty{padding:2.5rem 1rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem}.city-modal-empty h4{margin:.5rem 0 0;font-size:1rem;color:var(--color-text-primary, #0f172a)}.city-modal-empty p{margin:0;font-size:.8125rem;color:var(--color-text-secondary, #64748b);max-width:320px}.city-modal-empty-clear-btn{margin-top:.75rem;background:var(--color-primary-light, #f0fdfa);color:var(--color-primary, #0f766e);border:1px solid rgba(15,118,110,.2);padding:.4rem .85rem;border-radius:var(--radius-sm, 6px);font-size:.8125rem;font-weight:600;cursor:pointer}.city-modal-grid{display:flex;flex-direction:column;gap:.5rem}.city-card-item{width:100%;display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;border-radius:var(--radius-md, 12px);border:1.5px solid var(--color-border, #e2e8f0);background-color:#fff;cursor:pointer;text-align:left;transition:all var(--transition-fast, .15s ease)}.city-card-item:hover{border-color:#0f766e66;background-color:#f8fafc;transform:translate(2px)}.city-card-item:focus-visible{outline:2px solid var(--color-primary, #0f766e);outline-offset:2px}.city-card-item--selected{border-color:var(--color-primary, #0f766e);background-color:var(--color-primary-light, #f0fdfa)}.city-card-item--selected:hover{background-color:#e6fffa}.city-card-item__icon-wrap{width:38px;height:38px;border-radius:10px;background-color:#f1f5f9;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background-color var(--transition-fast, .15s ease)}.city-card-item--selected .city-card-item__icon-wrap{background-color:#fff}.city-card-item__info{flex:1;min-width:0}.city-card-item__top-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.city-card-item__name{font-size:.9375rem;font-weight:700;color:var(--color-text-primary, #0f172a)}.city-card-item__selected-badge{display:inline-flex;align-items:center;gap:.25rem;background-color:var(--color-primary, #0f766e);color:#fff;font-size:.6875rem;font-weight:700;padding:.15rem .5rem;border-radius:9999px;letter-spacing:.02em}.city-card-item__meta-row{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--color-text-secondary, #64748b);margin-top:.2rem}.city-card-item__state{font-weight:500}.city-card-item__attractions{color:var(--color-primary, #0f766e);font-weight:600}.city-modal-footer{padding:.875rem 1.75rem;background-color:#f8fafc;border-top:1px solid var(--color-border, #e2e8f0);display:flex;align-items:center;font-size:.75rem;line-height:1.5;color:var(--color-text-secondary, #64748b)}@media (max-width: 640px){.city-modal-overlay{padding:0;align-items:flex-end}.city-modal-card{max-height:90vh;border-bottom-left-radius:0;border-bottom-right-radius:0;animation:cityModalSlideUp .25s cubic-bezier(.16,1,.3,1) forwards}@keyframes cityModalSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.city-modal-header{padding:1.25rem 1.25rem 1rem}.city-modal-header__icon-badge{width:40px;height:40px}.city-modal-search-box{padding:.75rem 1.25rem .5rem}.city-modal-geo-section{padding:.5rem 1.25rem .75rem}.city-modal-body{padding:.25rem 1.25rem 1rem;max-height:50vh}.city-modal-footer{padding:.75rem 1.25rem}}.portal-floating-dock{position:fixed;right:24px;bottom:24px;z-index:900;display:flex;align-items:center;gap:12px;pointer-events:none}.portal-floating-dock>*{pointer-events:auto}.floating-city-btn{height:54px;padding:0 1rem 0 .5rem;border-radius:9999px;background:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(15,118,110,.2);box-shadow:0 4px 14px #0000001a,0 2px 6px #0f766e14;cursor:pointer;display:inline-flex;align-items:center;gap:.65rem;outline:none;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s cubic-bezier(.16,1,.3,1);will-change:transform}.floating-city-btn:hover{background-color:#fff;border-color:#0f766e61;box-shadow:0 6px 20px #0f766e2e,0 2px 8px #00000014;transform:translateY(-2px)}.floating-city-btn:active{transform:translateY(0) scale(.98);box-shadow:0 2px 8px #0f766e1f}.floating-city-btn:focus-visible{outline:2px solid var(--color-primary, #0f766e);outline-offset:3px;box-shadow:0 0 0 4px #0f766e2e,0 4px 14px #00000014}.floating-city-btn__icon-wrap{width:40px;height:40px;border-radius:50%;background-color:var(--color-primary-light, #f0fdfa);color:var(--color-primary, #0f766e);display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid rgba(15,118,110,.15);transition:transform .2s ease}.floating-city-btn:hover .floating-city-btn__icon-wrap{transform:scale(1.05)}.floating-city-btn__pin-icon{stroke-width:2.2}.floating-city-btn__info{display:flex;flex-direction:column;align-items:flex-start;text-align:left;min-width:0}.floating-city-btn__micro-tag{font-size:.5875rem;font-weight:800;color:var(--color-primary, #0f766e);letter-spacing:.08em;text-transform:uppercase;line-height:1;margin-bottom:.15rem}.floating-city-btn__name{font-size:.875rem;font-weight:700;color:var(--color-text-primary, #0f172a);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.floating-city-btn__indicator{display:flex;align-items:center;gap:.35rem;margin-left:.2rem}.floating-city-btn__uf-badge{font-size:.625rem;font-weight:800;color:#475569;background-color:#f1f5f9;padding:.1rem .45rem;border-radius:9999px;border:1px solid #e2e8f0;letter-spacing:.03em}.floating-city-btn__chevron{color:var(--color-text-muted, #64748b);transition:transform .2s ease}.floating-city-btn:hover .floating-city-btn__chevron{transform:translateY(1px);color:var(--color-primary, #0f766e)}@media (max-width: 768px){.portal-floating-dock{right:16px;bottom:16px;gap:8px}.floating-city-btn{height:48px;padding:0 .85rem 0 .4rem;gap:.5rem}.floating-city-btn__icon-wrap{width:36px;height:36px}.floating-city-btn__name{font-size:.8125rem;max-width:105px}.floating-city-btn__micro-tag{font-size:.5625rem}.floating-city-btn__uf-badge{display:none}}.toast{position:fixed;bottom:2rem;right:2rem;z-index:1000;display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:.9375rem;font-weight:500;animation:toastSlideIn .25s ease-out forwards;max-width:90vw}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.toast--success{background-color:#064e3b;color:#ecfdf5;border:1px solid #059669}.toast--error{background-color:#7f1d1d;color:#fef2f2;border:1px solid #dc2626}.toast--info{background-color:#0c4a6e;color:#f0f9ff;border:1px solid #0284c7}.toast__icon{flex-shrink:0}.toast__close{color:inherit;opacity:.7;padding:.25rem;display:flex;align-items:center;justify-content:center;transition:opacity var(--transition-fast)}.toast__close:hover{opacity:1}@media (max-width: 640px){.toast{bottom:1rem;right:1rem;left:1rem;justify-content:space-between}}.site-header{position:sticky;top:0;z-index:100;min-height:var(--header-height);background-color:#fffffff2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border);transition:all var(--transition-normal)}.site-header__container{min-height:var(--header-height);display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-top:.25rem;padding-bottom:.25rem}.site-header__brand-group{display:flex;align-items:center;gap:.75rem;flex-shrink:0;min-width:0}.brand,.brand--header-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:0;margin:0;cursor:pointer;text-decoration:none;line-height:0;flex-shrink:0;transition:opacity var(--transition-fast, .2s ease),transform var(--transition-fast, .2s ease)}.brand--header-btn:hover{opacity:.92;transform:translateY(-1px)}.site-header__brand-group .brand-logo,.brand--header-btn .brand-logo,.brand-logo--header{width:auto;max-width:175px;max-height:112px;height:auto;flex-shrink:0;display:block;object-fit:contain;margin:0}@media (max-width: 1024px){.site-header__brand-group .brand-logo,.brand--header-btn .brand-logo,.brand-logo--header{width:auto;max-width:150px;max-height:94px}}@media (max-width: 768px){.site-header__brand-group .brand-logo,.brand--header-btn .brand-logo,.brand-logo--header{width:auto;max-width:130px;max-height:82px}}@media (max-width: 380px){.site-header__brand-group .brand-logo,.brand--header-btn .brand-logo,.brand-logo--header{width:auto;max-width:110px;max-height:70px}}.nav-mobile__header .brand--header-btn .brand-logo{width:auto;max-width:140px;max-height:88px;height:auto;flex-shrink:0;display:block;object-fit:contain;margin:0}.nav-desktop__list{display:flex;align-items:center;gap:.25rem;list-style:none}.nav-desktop__link{position:relative;font-size:.9375rem;font-weight:600;color:var(--color-text-secondary);padding:.6rem .75rem;border-radius:var(--radius-sm);transition:color var(--transition-fast);display:inline-flex;align-items:center;gap:.35rem;background:none;border:none;cursor:pointer}.nav-desktop__link:hover{color:var(--color-primary);background:none}.nav-desktop__link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.nav-desktop__link--active{color:var(--color-primary);background:none}.nav-desktop__link--active:after{content:"";position:absolute;bottom:.15rem;left:.75rem;right:.75rem;height:2px;background-color:var(--color-primary);border-radius:2px}.nav-desktop__link--passport{color:var(--color-primary);font-weight:600}.nav-desktop__link--passport:hover{color:var(--color-primary-hover)}.header-user-menu{display:flex;align-items:center;gap:.35rem;background:var(--color-surface-subtle);padding:.2rem .4rem;border-radius:var(--radius-full);border:1px solid var(--color-border)}.header-user-btn{display:flex;align-items:center;gap:.5rem;background:transparent;border:none;cursor:pointer;padding:.15rem .4rem .15rem .15rem}.header-user-avatar{width:28px;height:28px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:.8125rem;font-weight:700;display:flex;align-items:center;justify-content:center}.header-user-name{font-size:.8125rem;font-weight:600;color:var(--color-text-primary)}.header-logout-btn{background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;padding:.35rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.header-logout-btn:hover{background:#fef2f2;color:#dc2626}.header-nav-btn{display:inline-flex;align-items:center;gap:.4rem;font-size:.875rem;font-weight:600;padding:.45rem .75rem;border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer;border:1px solid transparent;background:none}.header-nav-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.header-nav-btn--login{color:var(--color-text-primary);background-color:var(--color-surface-subtle);border-color:var(--color-border)}.header-nav-btn--login:hover{color:var(--color-primary);border-color:var(--color-primary-border);background-color:var(--color-primary-light)}.header-nav-btn--admin{color:var(--color-text-muted);background-color:transparent}.header-nav-btn--admin:hover{color:var(--color-text-primary);background-color:var(--color-surface-muted)}.mobile-user-card{display:flex;align-items:center;gap:.75rem;padding:.85rem;background:var(--color-primary-light);border:1px solid var(--color-primary-border);border-radius:var(--radius-lg);margin-bottom:1.25rem;cursor:pointer}.mobile-logout-btn{margin-left:auto;background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.4rem}.mobile-login-box{margin-bottom:1.25rem}.mobile-login-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;font-size:.9375rem;font-weight:700;color:var(--color-text-inverse);background:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast)}.mobile-login-btn:hover{background-color:var(--color-primary-hover)}.mobile-admin-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1rem;font-size:.875rem;font-weight:600;color:var(--color-text-secondary);background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.mobile-admin-btn:hover{color:var(--color-text-primary);border-color:var(--color-border-hover);background:var(--color-surface-muted)}.site-header__actions{display:flex;align-items:center;gap:.75rem}.mobile-toggle{display:none;color:var(--color-text-primary);padding:.5rem;border-radius:var(--radius-sm);background:none;border:none;cursor:pointer;align-items:center;justify-content:center;min-width:44px;min-height:44px;transition:background-color var(--transition-fast)}.mobile-toggle:hover{background-color:var(--color-surface-subtle)}.mobile-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.nav-mobile-overlay{display:none}@media (max-width: 960px){.nav-desktop,.header-nav-btn--admin{display:none}.mobile-toggle{display:flex}.nav-mobile-overlay{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0f172a80;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--transition-normal, .25s) ease,visibility var(--transition-normal, .25s) ease}.nav-mobile-overlay--open{opacity:1;visibility:visible;pointer-events:auto}.nav-mobile{position:absolute;top:0;left:0;width:85%;max-width:320px;height:100vh;background-color:var(--color-surface);padding:1.5rem;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);overflow-y:auto;transform:translate(-100%);transition:transform var(--transition-normal, .25s) cubic-bezier(.4,0,.2,1)}.nav-mobile-overlay--open .nav-mobile{transform:translate(0)}.nav-mobile__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}.nav-mobile__list{list-style:none;display:flex;flex-direction:column;gap:.35rem;flex:1}.nav-mobile__link{width:100%;text-align:left;font-size:.9375rem;font-weight:600;color:var(--color-text-primary);padding:.7rem .85rem;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:flex-start;gap:.75rem;transition:all var(--transition-fast);background:none;border:none;cursor:pointer}.nav-mobile__link:hover{background-color:var(--color-surface-subtle);color:var(--color-primary)}.nav-mobile__link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.nav-mobile__link--active{background-color:var(--color-primary-light);color:var(--color-primary);font-weight:700}.nav-mobile__footer{padding-top:1rem;margin-top:1rem;border-top:1px solid var(--color-border)}}.city-selector-container{position:relative;display:inline-block}.city-selector-trigger{display:inline-flex;align-items:center;gap:.5rem;height:42px;padding:0 1rem;border-radius:var(--radius-full, 9999px);border:1.5px solid var(--color-border, #e2e8f0);background-color:var(--color-surface, #ffffff);color:var(--color-text-secondary, #475569);font-family:inherit;font-size:.875rem;font-weight:500;line-height:1;cursor:pointer;box-shadow:var(--shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, .05));transition:all var(--transition-fast, .15s ease);-webkit-user-select:none;user-select:none;box-sizing:border-box;max-width:100%}.city-selector-trigger:hover:not(:disabled){border-color:var(--color-primary, #0d9488);background-color:var(--color-surface-subtle, #f8fafc);color:var(--color-primary, #0d9488);box-shadow:0 2px 8px #0d94881f}.city-selector-trigger:focus-visible{outline:2px solid var(--color-primary, #0d9488);outline-offset:2px}.city-selector-trigger--selected{background-color:#f0fdfa;border-color:var(--color-primary, #0d9488);color:var(--color-primary-dark, #0f766e);font-weight:600;box-shadow:0 2px 6px #0d948826}.city-selector-trigger--selected:hover:not(:disabled){background-color:#e6f8f5;border-color:var(--color-primary-hover, #0f766e)}.city-selector-trigger:disabled{opacity:.55;cursor:not-allowed;border-color:var(--color-border, #e2e8f0)}.city-selector-trigger__icon{color:var(--color-primary, #0d9488);flex-shrink:0}.city-selector-trigger__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.city-selector-trigger__chevron{color:var(--color-text-muted, #64748b);flex-shrink:0;transition:transform .2s ease,color .15s ease}.city-selector-trigger__chevron--open{transform:rotate(180deg);color:var(--color-primary, #0d9488)}.city-selector-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:100%;width:max-content;max-width:min(320px,calc(100vw - 32px));background-color:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e2e8f0);border-radius:14px;box-shadow:0 10px 25px -5px #0000001f,0 8px 10px -6px #00000014;padding:.375rem;margin:0;list-style:none;z-index:1050;max-height:280px;overflow-y:auto;overscroll-behavior:contain;animation:citySelectorFadeIn .15s cubic-bezier(.16,1,.3,1)}@keyframes citySelectorFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.city-selector-option{display:flex;align-items:center;gap:.5rem;padding:.55rem .75rem;border-radius:8px;font-size:.875rem;font-weight:500;color:var(--color-text-primary, #1e293b);cursor:pointer;transition:background-color .12s ease,color .12s ease;-webkit-user-select:none;user-select:none}.city-selector-option:hover,.city-selector-option--active{background-color:var(--color-surface-subtle, #f8fafc);color:var(--color-text-primary, #0f172a)}.city-selector-option--selected{background-color:#f0fdfa!important;color:var(--color-primary, #0d9488)!important;font-weight:600}.city-selector-option__check-wrap{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.city-selector-option__check{color:var(--color-primary, #0d9488)}.city-selector-option__check-spacer{width:14px;height:14px}.city-selector-option__text{white-space:nowrap;flex:1}.city-selector-menu::-webkit-scrollbar{width:5px}.city-selector-menu::-webkit-scrollbar-track{background:transparent}.city-selector-menu::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:9999px}.city-selector-menu::-webkit-scrollbar-thumb:hover{background:#94a3b8}.city-selector--explorar{flex-shrink:0}.city-selector--explorar .city-selector-trigger{height:48px;min-width:215px;font-size:.9375rem;padding:0 1.15rem}.city-selector--rotas{flex-shrink:0}.city-selector--rotas .city-selector-trigger{height:48px;min-width:215px;font-size:.9375rem;padding:0 1.15rem}.city-selector--mapa{flex-shrink:0}.city-selector--mapa .city-selector-trigger{height:36px;min-width:175px;font-size:.8125rem;padding:0 .85rem;gap:.4rem}@media (max-width: 768px){.city-selector--explorar,.city-selector--rotas{width:100%}.city-selector--explorar .city-selector-trigger,.city-selector--rotas .city-selector-trigger{width:100%;min-width:0;justify-content:space-between}.city-selector--explorar .city-selector-menu,.city-selector--rotas .city-selector-menu{width:100%;max-width:100%}.city-selector--mapa .city-selector-trigger{min-width:150px;height:34px;font-size:.78125rem;padding:0 .7rem}.city-selector--mapa .city-selector-menu{min-width:200px;max-width:calc(100vw - 32px)}}@media (max-width: 480px){.city-selector--explorar .city-selector-trigger,.city-selector--rotas .city-selector-trigger{height:44px;font-size:.875rem}.city-selector-option{padding:.65rem .75rem}}.site-footer{background-color:var(--color-surface);border-top:1px solid var(--color-border);padding-top:4rem;padding-bottom:2rem}.site-footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem;margin-bottom:3.5rem}.site-footer__brand-col{max-width:420px}.brand--footer{margin-bottom:1.25rem}.site-footer__text{font-size:.9375rem;color:var(--color-text-secondary);line-height:1.6}.site-footer__social{margin-top:1.5rem}.site-footer__social-heading{font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-primary);margin-bottom:.75rem}.site-footer__social-links{display:flex;align-items:center;flex-wrap:wrap;gap:.625rem}.site-footer__social-btn{width:36px;height:36px;border-radius:var(--radius-md, 10px);background-color:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e2e8f0);color:var(--color-text-secondary, #475569);display:inline-flex;align-items:center;justify-content:center;transition:color var(--transition-fast, .15s ease),background-color var(--transition-fast, .15s ease),border-color var(--transition-fast, .15s ease),box-shadow var(--transition-fast, .15s ease),transform var(--transition-fast, .15s ease);text-decoration:none;cursor:pointer;flex-shrink:0}.site-footer__social-btn svg{display:block;transition:transform var(--transition-fast, .15s ease)}.site-footer__social-btn:hover{color:var(--color-primary, #0f766e);background-color:var(--color-primary-light, #f0fdfa);border-color:var(--color-primary, #0f766e);box-shadow:0 2px 8px var(--color-primary-glow, rgba(15, 118, 110, .15));transform:translateY(-2px)}.site-footer__social-btn:hover svg{transform:scale(1.06)}.site-footer__social-btn:focus-visible{outline:2px solid var(--color-primary, #0f766e);outline-offset:2px;border-color:var(--color-primary, #0f766e);color:var(--color-primary, #0f766e);background-color:var(--color-primary-light, #f0fdfa)}.site-footer__social-btn:active{transform:translateY(0);color:var(--color-primary-hover, #115e59);background-color:var(--color-primary-border, #ccfbf1);border-color:var(--color-primary-hover, #115e59);box-shadow:none}.site-footer__heading{font-size:.875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-primary);margin-bottom:1.25rem}.site-footer__list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.site-footer__link,.site-footer__link-btn{font-size:.9375rem;color:var(--color-text-secondary);transition:color var(--transition-fast);background:none;border:none;padding:0;cursor:pointer;text-align:left;font-family:inherit;display:inline-flex;align-items:center;gap:.45rem}.site-footer__link:hover,.site-footer__link-btn:hover{color:var(--color-primary)}.site-footer__admin-icon{flex-shrink:0;color:inherit;opacity:.75;transition:opacity var(--transition-fast)}.site-footer__link-btn--admin:hover .site-footer__admin-icon{opacity:1}.brand--footer .brand__dot{width:6px;height:6px;border-radius:50%;background-color:#10b981;display:inline-block;flex-shrink:0}.site-footer__cities-list{margin:0;padding:0}.site-footer__city-item{display:flex;align-items:center}.site-footer__city-link{font-size:.9375rem;font-weight:500;color:var(--color-text-secondary);text-decoration:none;display:inline-flex;align-items:center;gap:.55rem;transition:all var(--transition-fast);cursor:pointer;background:none;border:none;padding:0;white-space:nowrap}.site-footer__city-link:hover{color:var(--color-primary);transform:translate(3px)}.site-footer__city-name{white-space:nowrap}.dot{width:6px;height:6px;border-radius:50%;background-color:var(--color-text-subtle);display:inline-block}.dot--city{background-color:var(--color-primary, #0d9488);flex-shrink:0;transition:all var(--transition-fast)}.site-footer__city-link:hover .dot--city{background-color:var(--color-accent, #10b981);box-shadow:0 0 6px #10b98166;transform:scale(1.25)}.site-footer__city-picker{margin-bottom:1rem;max-width:240px}.site-footer__city-link--active{color:var(--color-primary);font-weight:700}.dot--city-active{background-color:var(--color-accent, #10b981)!important;box-shadow:0 0 8px #10b98199;transform:scale(1.3)}.site-footer__city-active-tag{font-size:.6875rem;text-transform:uppercase;font-weight:800;letter-spacing:.05em;background-color:#10b9811f;color:#10b981;padding:.1rem .45rem;border-radius:var(--radius-full, 9999px);margin-left:.35rem;line-height:1.2}.site-footer__bottom{padding-top:2rem;border-top:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.site-footer__copyright{font-size:.875rem;color:var(--color-text-muted)}.site-footer__tagline{font-size:.875rem;font-weight:600;color:var(--color-text-secondary);display:flex;gap:.5rem}@media (max-width: 768px){.site-footer__grid{grid-template-columns:1fr;gap:2rem}}.scroll-to-top-btn{position:fixed;right:24px;bottom:24px;z-index:900;width:60px;height:60px;border-radius:50%;background:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(15,118,110,.16);box-shadow:0 4px 14px #0000001a,0 2px 6px #0f766e14;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;margin:0;outline:none;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px) scale(.92);transition:opacity .28s cubic-bezier(.16,1,.3,1),transform .28s cubic-bezier(.16,1,.3,1),visibility .28s cubic-bezier(.16,1,.3,1),background-color .2s ease,box-shadow .2s ease,border-color .2s ease;will-change:transform,opacity}.scroll-to-top-btn--visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}.scroll-to-top-btn__icon{width:38px;height:38px;max-width:38px;max-height:38px;object-fit:contain;display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none;transition:transform .2s ease}@media (hover: hover) and (pointer: fine){.scroll-to-top-btn:hover{background-color:#fff;border-color:#0f766e52;box-shadow:0 6px 20px #0f766e2e,0 2px 8px #00000014;transform:translateY(-2px) scale(1.04)}.scroll-to-top-btn:hover .scroll-to-top-btn__icon{transform:translateY(-1px)}.scroll-to-top-btn:active{transform:translateY(0) scale(.98);box-shadow:0 2px 8px #0f766e1f}}.scroll-to-top-btn:focus-visible{outline:2px solid var(--color-primary, #0f766e);outline-offset:3px;box-shadow:0 0 0 4px #0f766e2e,0 4px 14px #00000014}@media (max-width: 768px){.scroll-to-top-btn{right:16px;bottom:16px;width:52px;height:52px;box-shadow:0 4px 12px #0000001f,0 2px 4px #0f766e14}.scroll-to-top-btn__icon{width:32px;height:32px;max-width:32px;max-height:32px}}.portal-floating-dock .scroll-to-top-btn{position:static;right:auto;bottom:auto}.portal-floating-dock .scroll-to-top-btn:not(.scroll-to-top-btn--visible){display:none}:root{--color-primary: #0f766e;--color-primary-hover: #115e59;--color-primary-light: #f0fdfa;--color-primary-border: #ccfbf1;--color-primary-glow: rgba(15, 118, 110, .15);--color-accent: #059669;--color-accent-light: #ecfdf5;--color-bg: #fcfdfd;--color-surface: #ffffff;--color-surface-subtle: #f8fafc;--color-surface-muted: #f1f5f9;--color-text-primary: #0f172a;--color-text-secondary: #475569;--color-text-muted: #64748b;--color-text-subtle: #94a3b8;--color-text-inverse: #ffffff;--color-border: #e2e8f0;--color-border-subtle: #f1f5f9;--color-border-hover: #cbd5e1;--color-success: #10b981;--color-success-bg: #ecfdf5;--color-warning: #f59e0b;--color-warning-bg: #fffbeb;--color-info: #0284c7;--color-info-bg: #f0f9ff;--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .06), 0 1px 2px -1px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .04);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .08), 0 8px 10px -6px rgba(0, 0, 0, .04);--shadow-card-hover: 0 12px 24px -4px rgba(15, 118, 110, .08), 0 4px 8px -2px rgba(0, 0, 0, .04);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--container-editorial: 1140px;--container-wide: 1440px;--page-gutter: 1.5rem;--max-width-container: var(--container-editorial);--header-height: 126px;--space-0: 0px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--admin-card-gap: 1.5rem;--admin-card-gap-sm: 1rem;--admin-card-gap-lg: 2rem;--font-size-2xs: .6875rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1)}@media (max-width: 768px){:root{--header-height: 100px}}.admin-modal-overlay,.admin-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172aa6;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4, 1rem);animation:adminModalFadeIn .2s cubic-bezier(.16,1,.3,1)}@keyframes adminModalFadeIn{0%{opacity:0}to{opacity:1}}.admin-modal-card{background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-2xl, 16px);box-shadow:0 20px 25px -5px #0000001f,0 10px 10px -5px #0000000a;width:100%;max-width:580px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;animation:adminModalSlideUp .25s cubic-bezier(.16,1,.3,1);position:relative}@keyframes adminModalSlideUp{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.admin-modal-card--compact{max-width:480px}.admin-modal-card--md{max-width:540px}.admin-modal-card--default{max-width:600px}.admin-modal-card--lg{max-width:680px}.admin-modal-card--danger{border-top:4px solid #dc2626}.admin-modal-header,.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border, #e2e8f0);background:var(--color-surface, #ffffff)}.admin-modal-title-box{display:flex;align-items:center;gap:var(--space-3, .75rem)}.admin-modal-icon-badge{width:42px;height:42px;border-radius:var(--radius-lg, 12px);background:var(--color-primary-light, #f0fdfa);color:var(--color-primary, #0f766e);border:1px solid var(--color-primary-border, #ccfbf1);display:flex;align-items:center;justify-content:center;flex-shrink:0}.admin-modal-icon-badge--danger{background:#fef2f2;color:#dc2626;border-color:#fecaca}.admin-modal-title,.modal-header h3{font-size:1.2rem;font-weight:700;color:var(--color-text-primary, #0f172a);margin:0;line-height:1.25}.admin-modal-subtitle{font-size:.8125rem;color:var(--color-text-muted, #64748b);margin:3px 0 0;line-height:1.4}.admin-modal-close,.modal-header .close-btn{background:transparent;border:none;color:var(--color-text-muted, #64748b);cursor:pointer;padding:6px;border-radius:var(--radius-md, 8px);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast, .15s ease)}.admin-modal-close:hover,.modal-header .close-btn:hover{background:var(--color-surface-hover, #f8fafc);color:var(--color-text-primary, #0f172a)}.admin-modal-form{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.admin-form-section{display:flex;flex-direction:column;gap:1rem;background:var(--color-surface-subtle, #f8fafc);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-xl, 14px);padding:1.125rem 1.25rem}.admin-form-section-header{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:700;color:var(--color-text-primary, #0f172a);text-transform:uppercase;letter-spacing:.04em;padding-bottom:.5rem;border-bottom:1px solid var(--color-border, #e2e8f0)}.admin-form-section-header .section-icon{color:var(--color-primary, #0f766e)}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.admin-form-grid--1col{grid-template-columns:1fr}.admin-form-grid--full{grid-column:1 / -1}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-label,.admin-modal-form label{font-size:.875rem;font-weight:600;color:var(--color-text-primary, #0f172a);display:flex;align-items:center;gap:4px}.form-label .req,.admin-modal-form label .req{color:#dc2626;font-weight:700}.form-input,.form-select,.admin-modal-form input[type=text],.admin-modal-form input[type=email],.admin-modal-form input[type=password],.admin-modal-form input[type=number],.admin-modal-form select{width:100%;height:42px;padding:0 .875rem;font-size:.875rem;font-family:inherit;background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #cbd5e1);border-radius:var(--radius-md, 10px);color:var(--color-text-primary, #0f172a);transition:border-color var(--transition-fast, .15s ease),box-shadow var(--transition-fast, .15s ease)}.form-input:hover,.form-select:hover,.admin-modal-form input:hover,.admin-modal-form select:hover{border-color:var(--color-border-hover, #94a3b8)}.form-input:focus,.form-select:focus,.admin-modal-form input:focus,.admin-modal-form select:focus{outline:none;border-color:var(--color-primary, #0f766e);box-shadow:0 0 0 3px var(--color-primary-glow, rgba(15, 118, 110, .18))}.form-input:disabled,.form-select:disabled,.admin-modal-form input:disabled,.admin-modal-form select:disabled{background:var(--color-surface-subtle, #f8fafc);color:var(--color-text-muted, #94a3b8);cursor:not-allowed;opacity:.75}.form-input--error,.admin-modal-form input.form-input--error{border-color:#dc2626!important}.form-input--error:focus{box-shadow:0 0 0 3px #dc262626!important}.form-hint{font-size:.75rem;color:var(--color-text-muted, #64748b);line-height:1.35}.form-error{font-size:.75rem;color:#dc2626;font-weight:600;display:flex;align-items:center;gap:4px;margin-top:2px}.admin-form-slug-hint{display:flex;align-items:center;gap:.5rem;padding:.65rem .875rem;background:var(--color-surface-subtle, #f8fafc);border:1px dashed var(--color-border, #cbd5e1);border-radius:var(--radius-md, 8px);font-size:.8125rem;color:var(--color-text-secondary, #475569);flex-wrap:wrap}.admin-form-slug-hint span{font-weight:500}.admin-form-slug-hint code{font-family:var(--font-mono, monospace);color:var(--color-primary, #0f766e);background:var(--color-primary-light, #f0fdfa);padding:2px 6px;border-radius:4px;font-weight:600;word-break:break-all}.admin-modal-error-banner,.modal-error-banner{display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-md, 8px);color:#b91c1c;font-size:.875rem;font-weight:500}.admin-modal-actions,.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3, .75rem);padding-top:1.25rem;border-top:1px solid var(--color-border, #e2e8f0);margin-top:.5rem}@media (max-width: 640px){.admin-modal-overlay,.admin-modal-backdrop{padding:var(--space-2, .5rem)}.admin-modal-card{max-height:95vh;border-radius:var(--radius-xl, 14px)}.admin-modal-header,.modal-header{padding:1rem 1.125rem}.admin-modal-form{padding:1.125rem;gap:1rem}.admin-form-grid{grid-template-columns:1fr;gap:.875rem}.admin-modal-actions,.modal-footer{flex-direction:column-reverse;gap:.5rem}.admin-modal-actions button,.modal-footer button,.admin-modal-actions .btn,.modal-footer .btn{width:100%;justify-content:center}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font-family:inherit;background:none;border:none;cursor:pointer}img{display:block;max-width:100%}svg{max-width:100%}.lucide{display:inline-block;vertical-align:middle;flex-shrink:0}.container{width:100%;max-width:var(--max-width-container, 1140px);margin-left:auto;margin-right:auto;padding-left:var(--page-gutter, 1.5rem);padding-right:var(--page-gutter, 1.5rem)}.container-wide{width:100%;max-width:var(--container-wide, 1440px);margin-left:auto;margin-right:auto;padding-left:var(--page-gutter, 1.5rem);padding-right:var(--page-gutter, 1.5rem)}@media (max-width: 640px){.container,.container-wide{padding-left:1rem;padding-right:1rem}}.section{padding-top:5rem;padding-bottom:5rem}@media (max-width: 768px){.section{padding-top:3.5rem;padding-bottom:3.5rem}}.grid{display:grid;gap:1.5rem}::selection{background-color:var(--color-primary-border);color:var(--color-primary-hover)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
