:root{--legacy-primary:#0d9488;--legacy-secondary:#ccfbf1;--legacy-background-image:url(https://images.unsplash.com/photo-1500382017468-9049fed747ef?auto=format&fit=crop&w=2000&q=80);--legacy-glass-bg:rgba(255,255,255,0.78);--legacy-glass-border:rgba(255,255,255,0.62);--legacy-text-primary:#1f2937;--legacy-text-secondary:#4b5563;--legacy-text-soft:#6b7280;--legacy-danger:#b91c1c}.theme-shell{min-height:100vh;position:relative;isolation:isolate}.theme-bg{position:fixed;inset:0;z-index:-2;background-image:var(--legacy-background-image);background-position:50%;background-size:cover;background-repeat:no-repeat}.theme-overlay{position:fixed;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(255,255,255,.5),rgba(255,255,255,.9));backdrop-filter:blur(2px)}.public-topbar{display:flex;justify-content:flex-end;padding:1rem}.public-main{min-height:calc(100vh - 70px);display:grid;place-items:center;padding:1rem}.language-nav{display:inline-flex;align-items:center;gap:.35rem;background:rgba(255,255,255,.55);border:1px solid #d1d5db;border-radius:.75rem;padding:.25rem}.language-link{border-radius:.55rem;color:var(--legacy-text-secondary);font-size:.8rem;font-weight:600;padding:.35rem .65rem}.language-link.active{background:var(--legacy-secondary);color:var(--legacy-primary)}.card,.glass-card{background:var(--legacy-glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--legacy-glass-border);border-radius:1rem;box-shadow:0 16px 38px rgba(0,0,0,.08)}.card{padding:1.25rem}.hero-card{width:min(460px,100%);padding:2rem 1.4rem;text-align:center}.hero-logo{width:4rem;height:4rem;margin:0 auto 1rem;overflow:hidden}.hero-logo img{width:100%;object-fit:cover}.auth-title,.hero-title{font-family:var(--font-display),"Outfit","Avenir Next",sans-serif;font-weight:700;margin:0;letter-spacing:-.02em}.hero-title{font-size:clamp(1.7rem,3vw,2rem);line-height:1.12}.hero-subtitle{margin:.45rem 0 0;color:var(--legacy-text-secondary)}.hero-meta{margin:.6rem 0 1.25rem;color:var(--legacy-text-soft);font-size:.82rem}.auth-card{width:min(420px,100%);padding:2rem 1.4rem}.auth-head{margin-bottom:1.25rem;text-align:center}.auth-logo{width:3.8rem;height:3.8rem;margin:0 auto .95rem;display:grid;place-items:center;color:#fff}.auth-logo svg{width:2rem;height:2rem}.auth-title{font-size:1.7rem}.auth-subtitle{margin:.35rem 0 0;color:var(--legacy-text-secondary);font-size:.93rem}.auth-form,.stack{display:grid;gap:.8rem}.stack-xl{display:grid;gap:1rem}.auth-label{display:grid;gap:.35rem;font-size:.92rem;color:var(--legacy-text-secondary)}.auth-input{width:100%;border:1px solid #d1d5db;border-radius:.75rem;padding:.7rem .8rem;background:rgba(255,255,255,.7);color:var(--legacy-text-primary);font:inherit}.auth-input:focus{outline:none;border-color:var(--legacy-primary);box-shadow:0 0 0 3px var(--legacy-secondary);background:#fff}.auth-help{margin:.9rem 0;color:var(--legacy-text-soft);font-size:.9rem}.btn-primary,.btn-secondary,.danger,.primary,.secondary{border-radius:.75rem;border:1px solid transparent;cursor:pointer;display:inline-flex;justify-content:center;align-items:center;padding:.65rem .9rem;font-weight:600;font:inherit;transition:transform .18s ease,opacity .18s ease,background-color .18s ease,color .18s ease,border-color .18s ease}.btn-primary,.primary{background:var(--legacy-primary);color:#fff;box-shadow:0 8px 22px color-mix(in srgb,var(--legacy-primary) 35%,transparent)}.btn-primary:hover,.primary:hover{opacity:.93;transform:translateY(-1px)}.btn-secondary,.secondary{background:rgba(255,255,255,.88);color:var(--legacy-text-primary);border-color:#d1d5db}.btn-secondary:hover,.secondary:hover{color:var(--legacy-primary);border-color:var(--legacy-primary)}.danger{background:#fee2e2;color:var(--legacy-danger);border-color:#fecaca}.danger:hover{background:var(--legacy-danger);color:#fff}.app-shell{padding-bottom:2rem}.page-content{margin:0 auto}.page-content,.topbar{max-width:1060px;padding:1rem}.topbar{display:grid;grid-template-columns:auto 1fr auto;gap:.9rem;align-items:center;margin:1rem auto 0;background:var(--legacy-glass-bg);backdrop-filter:blur(16px);border:1px solid var(--legacy-glass-border);border-radius:1rem;position:relative;z-index:50}.topbar__back{border:1px solid #d1d5db;border-radius:.7rem;background:rgba(255,255,255,.88);color:var(--legacy-text-primary);font-weight:600;padding:.5rem .75rem}.topbar__back:hover{border-color:var(--legacy-primary);color:var(--legacy-primary)}.topbar__titles{min-width:0}.topbar__app{margin:0;color:var(--legacy-text-secondary);font-size:.8rem}.topbar__page{margin:0;font-family:var(--font-display),"Outfit","Avenir Next",sans-serif;font-size:1.25rem}.lang-picker{position:relative}.lang-picker__summary{list-style:none;border:1px solid #d1d5db;border-radius:.7rem;background:rgba(255,255,255,.88);color:var(--legacy-text-primary);font-size:.78rem;font-weight:700;letter-spacing:.02em;padding:.45rem .6rem;cursor:pointer;user-select:none}.lang-picker__summary::-webkit-details-marker{display:none}.lang-picker[open] .lang-picker__summary{border-color:var(--legacy-primary)}.lang-picker__panel{position:absolute;right:0;top:calc(100% + .4rem);z-index:100;background:rgba(255,255,255,.96);border:1px solid #d1d5db;border-radius:.7rem;padding:.35rem;display:grid;gap:.5rem;min-width:3.6rem}.lang-picker__option{border:1px solid transparent;border-radius:.5rem;background:transparent;color:var(--legacy-text-secondary);font-size:.78rem;font-weight:700;padding:.3rem .45rem;cursor:pointer}.lang-picker__option:hover{color:var(--legacy-primary);border-color:var(--legacy-primary)}.lang-picker__option.active{background:var(--legacy-secondary);color:var(--legacy-primary)}.profile-menu{margin:0 auto;max-width:620px}.profile-user{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.profile-user__avatar{width:2.7rem;height:2.7rem;border-radius:50%;display:grid;place-items:center;background:var(--legacy-secondary);color:var(--legacy-primary);font-weight:700}.profile-user__name{margin:0;font-weight:600}.profile-links{display:grid;gap:1rem;margin-bottom:1rem}.profile-link{border:1px solid #d6dde7;border-radius:.8rem;padding:.8rem;background:rgba(255,255,255,.6);font-weight:600}.profile-link:hover{border-color:var(--legacy-primary);color:var(--legacy-primary)}.flex-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.actions{display:flex;flex-wrap:wrap;gap:.75rem}.list{display:grid;gap:.6rem;list-style:none;margin:0;padding:0}.list__item{align-items:center;border:1px solid #d6dde7;border-radius:.9rem;display:flex;gap:.85rem;justify-content:space-between;padding:1rem;background:rgba(255,255,255,.62)}.list__title{font-weight:600;margin:0}.muted{color:var(--legacy-text-soft);margin:.25rem 0}.error{color:#991b1b}.success{color:#065f46}.separator{border:none;border-top:1px solid #d6dde7;margin:1rem 0}.certificate-preview{border:2px solid color-mix(in srgb,var(--legacy-primary) 45%,white);border-radius:1rem;text-align:center;padding:1rem;margin-bottom:1rem;background:color-mix(in srgb,var(--legacy-secondary) 28%,white)}.certificate-preview__kicker{margin:0;color:var(--legacy-primary);font-weight:800;letter-spacing:.08em}.certificate-preview__name{margin:.3rem 0;font-weight:700;font-size:1.2rem}.certificate-preview__route{margin:.3rem 0;font-weight:700;color:var(--legacy-primary)}.route-accordion-list{display:grid;gap:.6rem}.route-accordion{border:1px solid #d6dde7;border-radius:.9rem;background:rgba(255,255,255,.62);overflow:hidden}.route-accordion[open]{border-color:var(--legacy-primary)}.route-accordion__summary{display:flex;justify-content:space-between;align-items:center;padding:1rem;cursor:pointer;list-style:none;user-select:none}.route-accordion__summary::-webkit-details-marker{display:none}.route-accordion__name{font-weight:600}.route-accordion__count{color:var(--legacy-text-soft);font-size:.85rem}.route-accordion__content{padding:0 1rem 1rem}.checkpoint-map{border:1px dashed #c4d2e4;border-radius:.9rem;padding:1rem;margin:.8rem 0;background:rgba(255,255,255,.52)}.checkpoint-marker{width:14px;height:14px;background:var(--legacy-primary);border:2px solid #fff;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,.3)}@media (max-width:768px){.topbar{grid-template-columns:1fr}.list__item{align-items:stretch;flex-direction:column}}