@import "https://fonts.googleapis.com/css2?family=Inter+Tight:ital,wght@0,100..900;1,100..900&display=swap";:root,[data-theme=light]{--color-bg:#f8f8f8;--color-text:#2c2c2c;--color-text-heading:#1a1a1a;--color-text-secondary:#6b6b6b;--color-text-muted:#b0b0b0;--color-text-body:#2c2c2c;--color-surface:#fff;--color-surface-secondary:#f8f8f8;--color-border:#d4d4d4;--color-border-hover:#bfbfbf;--color-border-accent:#fb4f14;--color-primary:#fb4f14;--color-primary-hover:#d94410;--color-primary-light:#fb4f14;--color-primary-bg:#fb4f141f;--color-primary-bg-hover:#fb4f1433;--color-selection-bg:#fb4f14;--color-selection-text:#fff;--color-header-bg:#f8f8f8f2;--color-header-text:#1a1a1a;--color-header-border:#d4d4d4;--color-nav-link:#6b6b6b;--color-nav-link-hover:#1a1a1a;--color-nav-active-bg:#fb4f141a;--color-nav-active-text:#fb4f14;--color-nav-hover-bg:#fb4f140f;--color-signout-border:#d4d4d4;--color-signout-hover-border:#bfbfbf;--color-signout-hover-bg:#fb4f140f;--color-footer-separator:#d4d4d4;--color-footer-copy:#b0b0b0;--color-floating-shadow:#0000000f;--color-input-bg:#fff;--color-input-focus-shadow:#fb4f141a;--color-card-shadow:#0000000f;--color-card-hover-shadow:#fb4f141f;--color-overlay:#00000080;--color-dialog-shadow:#0003;--color-actions-bg:#fffffff2;--color-actions-shadow:#00000014;--color-cookie-shadow:#0000001a;--color-skeleton-base:#f0f0f0;--color-skeleton-shine:#d4d4d4;--color-autocomplete-active:#fb4f141f;--color-image-remove-bg:#0009;--color-table-header-bg:#f0f0f0;--color-table-row-border:#ebebeb;--color-table-row-hover:#f0f0f0;--color-login-bg-start:#1a1a1a;--color-login-bg-mid:#2c2c2c;--color-login-card-bg:#fffffff7;--color-login-card-shadow:#0000004d;--color-login-input-bg:#f0f0f0;--color-login-input-focus-bg:#fff;--color-slider-btn-bg:#ffffffe6;--color-slider-btn-hover-bg:#fff;--color-slider-btn-text:#1a1a1a;--color-slider-dot:#d4d4d4}[data-theme=dark]{--color-bg:#1b2632;--color-text:#eee9df;--color-text-heading:#f7f4ef;--color-text-secondary:#c9c1b1;--color-text-muted:#8a8279;--color-text-body:#c9c1b1;--color-surface:#2c3b4d;--color-surface-secondary:#2c3b4d;--color-border:#3d4e62;--color-border-hover:#4f6178;--color-border-accent:#fb4f14;--color-primary:#fb4f14;--color-primary-hover:#fc7a4f;--color-primary-light:#ffa080;--color-primary-bg:#fb4f1426;--color-primary-bg-hover:#fb4f1433;--color-selection-bg:#fb4f14;--color-selection-text:#fff;--color-header-bg:#141d27;--color-header-text:#f7f4ef;--color-header-border:#fb4f1440;--color-nav-link:#c9c1b1;--color-nav-link-hover:#eee9df;--color-nav-active-bg:#fb4f1440;--color-nav-active-text:#fff;--color-nav-hover-bg:#eee9df0f;--color-signout-border:#3d4e62;--color-signout-hover-border:#4f6178;--color-signout-hover-bg:#eee9df0f;--color-footer-separator:#3d4e62;--color-footer-copy:#8a8279;--color-floating-shadow:#00000026;--color-input-bg:#2c3b4d;--color-input-focus-shadow:#fb4f1426;--color-card-shadow:#0003;--color-card-hover-shadow:#fb4f1426;--color-overlay:#141d27b3;--color-dialog-shadow:#0006;--color-actions-bg:#2c3b4df2;--color-actions-shadow:#0003;--color-cookie-shadow:#0000004d;--color-skeleton-base:#2c3b4d;--color-skeleton-shine:#3d4e62;--color-autocomplete-active:#fb4f1426;--color-image-remove-bg:#0009;--color-table-header-bg:#2c3b4d;--color-table-row-border:#3d4e62;--color-table-row-hover:#eee9df08;--color-login-bg-start:#141d27;--color-login-bg-mid:#1b2632;--color-login-card-bg:#2c3b4df7;--color-login-card-shadow:#00000080;--color-login-input-bg:#1b2632;--color-login-input-focus-bg:#2c3b4d;--color-slider-btn-bg:#2c3b4de6;--color-slider-btn-hover-bg:#2c3b4d;--color-slider-btn-text:#eee9df;--color-slider-dot:#3d4e62}*,:before,:after{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-bg);color:var(--color-text);margin:0;font-family:Inter Tight,Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6;transition:background .3s,color .3s}#root{min-height:100vh}img{max-width:100%;display:block}a{color:inherit}::selection{background:var(--color-selection-bg);color:var(--color-selection-text)}.toast-container{z-index:9999;flex-direction:column;gap:.5rem;max-width:400px;display:flex;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.toast{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.9rem;font-weight:500;line-height:1.4;animation:.3s ease-out toast-slide-in;display:flex;box-shadow:0 8px 24px #0000001f}.toast--success{color:#fff;background:#2c3b4d}.toast--error{color:#fff;background:#fb4f14}.toast__message{flex:1}.toast__close{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;padding:0;font-size:1.25rem;line-height:1;transition:opacity .2s}.toast__close:hover{opacity:1}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@media (width<=480px){.toast-container{max-width:calc(100vw - 2rem);left:1rem;right:1rem;transform:none}.toast{padding:.65rem .85rem;font-size:.85rem}}.layout{flex-direction:column;min-height:100vh;display:flex}.header{background:var(--color-header-bg);height:64px;color:var(--color-header-text);z-index:100;justify-content:space-between;align-items:center;padding:0 2rem;transition:transform .3s;display:flex;position:fixed;top:0;left:0;right:0}.header--hidden{transform:translateY(-100%)}.logo{letter-spacing:-.02em;fill:var(--color-text);align-items:center;gap:.5rem;font-size:1.4rem;font-weight:800;text-decoration:none;display:flex}.header__controls{flex:1;justify-content:center;align-items:center;gap:.5rem;margin:0 1.5rem;display:flex}.header__search{flex:1;align-items:center;max-width:360px;display:flex;position:relative}.header__search-icon{color:var(--color-nav-link);pointer-events:none;position:absolute;left:.75rem}.header__search-input{border:1pxsolid var(--color-header-border);background:var(--color-input-bg);width:100%;color:var(--color-header-text);border-radius:10px;outline:none;padding:.45rem .75rem .45rem 2.25rem;font-size:.85rem;transition:border-color .2s,box-shadow .2s}.header__search-input::placeholder{color:var(--color-nav-link);opacity:.7}.header__search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-input-focus-shadow)}.header__selects{gap:.5rem;display:flex}.header__selects select{background:var(--color-input-bg);cursor:pointer;color:var(--color-text);border:none;border-bottom:1px solid var(--color-border);border-radius:10px;outline:none;padding:.45rem .75rem;font-size:.85rem;transition:border-color .2s}.header__selects select:focus{border-color:var(--color-primary)}.header__search-toggle{display:none}.nav{align-items:center;gap:.25rem;display:flex}.nav a,.nav__sign-out{color:var(--color-nav-link);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:.5rem;text-decoration:none;transition:color .2s,background .2s;display:flex;position:relative}.nav a:hover,.nav__sign-out:hover{color:var(--color-nav-link-hover);background:var(--color-nav-hover-bg)}.nav a.active{color:var(--color-nav-active-text);background:var(--color-nav-active-bg)}.nav a:after,.nav__sign-out:after{content:attr(title);background:var(--color-text);color:var(--color-bg);white-space:nowrap;opacity:0;pointer-events:none;border-radius:4px;padding:.2rem .5rem;font-size:.7rem;font-weight:500;transition:opacity .15s;position:absolute;bottom:-2rem;left:50%;transform:translate(-50%)}.nav a:hover:after,.nav__sign-out:hover:after{opacity:1}.nav__sign-out{border:1px solid var(--color-signout-border);margin-left:.5rem;transition:color .2s,border-color .2s,background .2s}.nav__sign-out:hover{border-color:var(--color-signout-hover-border);background:var(--color-signout-hover-bg)}.main{flex:1;width:100%;max-width:1800px;margin:0 auto;padding:calc(64px + 3.5rem) 2rem 2.5rem}.footer{color:var(--color-nav-link);border-radius:16px;justify-content:space-between;align-items:center;padding:.75rem 2rem;font-size:.85rem;display:flex}.footer__links{align-items:center;gap:.5rem;display:flex}.footer__links a{color:var(--color-nav-link);text-decoration:none;transition:color .2s}.footer__links a:hover{color:var(--color-nav-link-hover)}.footer__separator{color:var(--color-footer-separator)}.footer__copy{color:var(--color-footer-copy);margin:0;font-size:.8rem}@media (width<=768px){.header{flex-wrap:wrap;height:auto;padding:.75rem 1rem;left:1rem;right:1rem}.header__search-toggle{color:var(--color-nav-link);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:.5rem;transition:color .2s,background .2s;display:flex}.header__search-toggle:hover{color:var(--color-nav-link-hover);background:var(--color-nav-hover-bg)}.header__controls{flex-basis:100%;order:3;margin:0;display:none}.header__controls--open{margin:.5rem 0 0;display:flex}.header__search{max-width:none}.header__selects select{padding:.4rem .5rem;font-size:.8rem}.nav{gap:.125rem}.main{padding:calc(64px + 2.5rem) 1rem 1.5rem}.footer{margin:0 1rem 1rem;padding:.75rem 1rem}}@media (width<=480px){.header{border-radius:12px;height:auto;padding:.5rem .75rem;top:.75rem;left:.75rem;right:.75rem}.header--hidden{transform:translateY(calc(-100% - .75rem))}.header__controls--open{gap:.4rem;margin:.4rem 0 0}.header__selects select{padding:.35rem .5rem;font-size:.75rem}.header__search-input{padding:.4rem .6rem .4rem 2rem;font-size:.8rem}.logo{font-size:1.2rem}.nav{gap:0}.nav__sign-out{margin-left:.25rem}.main{padding:calc(56px + 1.75rem) .75rem 1rem}.footer{border-radius:12px;margin:0 .75rem .75rem;padding:.6rem .75rem;font-size:.8rem}.footer__links{font-size:.8rem}.footer__copy{font-size:.75rem}}.login-page{background:linear-gradient(135deg, var(--color-login-bg-start) 0%, var(--color-login-bg-mid) 50%, var(--color-login-bg-start) 100%);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";pointer-events:none;background:radial-gradient(circle,#ffb16226 0%,#0000 70%);width:600px;height:600px;position:absolute;top:-200px;right:-200px}.login-page:after{content:"";pointer-events:none;background:radial-gradient(circle,#a351391a 0%,#0000 70%);width:400px;height:400px;position:absolute;bottom:-100px;left:-100px}.login-card{background:var(--color-login-card-bg);width:100%;max-width:420px;box-shadow:0 20px 60px var(--color-login-card-shadow), 0 0 0 1px #ffffff1a;z-index:1;border-radius:20px;padding:2.75rem 2.5rem;position:relative}.login-card__logo{color:var(--color-primary);letter-spacing:-.02em;justify-content:center;align-items:center;gap:.5rem;margin:0 0 .25rem;font-size:1.75rem;font-weight:800;display:flex}.login-card__title{text-align:center;color:var(--color-text-secondary);margin:0 0 2rem;font-size:1.15rem;font-weight:500}.login-card__form{flex-direction:column;gap:1.25rem;display:flex}.login-card__field{flex-direction:column;gap:.4rem;display:flex}.login-card__field label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);font-size:.8rem;font-weight:600}.login-card__field input{border:1px solid var(--color-border);background:var(--color-login-input-bg);color:var(--color-text);border-radius:10px;outline:none;padding:.7rem .85rem;font-size:.95rem;transition:border-color .2s,box-shadow .2s,background .2s}.login-card__field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-input-focus-shadow);background:var(--color-login-input-focus-bg)}.login-card__submit{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:10px;margin-top:.25rem;padding:.8rem;font-size:.95rem;font-weight:600;transition:background .2s,transform .1s}.login-card__submit:hover:not(:disabled){background:var(--color-primary-hover)}.login-card__submit:active:not(:disabled){transform:scale(.98)}.login-card__submit:disabled{opacity:.6;cursor:not-allowed}.login-card__toggle{text-align:center;color:var(--color-text-muted);margin:1.5rem 0 0;font-size:.9rem}.login-card__toggle-btn{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.9rem;font-weight:600}.login-card__toggle-btn:hover{text-decoration:underline}@media (width<=480px){.login-page{padding:1rem}.login-card{border-radius:16px;padding:2rem 1.5rem}.login-card__logo{font-size:1.5rem}.login-card__title{margin-bottom:1.5rem;font-size:1rem}.login-card__field input{padding:.65rem .75rem;font-size:.9rem}}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.bicycle-card{background:var(--color-surface);color:inherit;box-sizing:border-box;cursor:pointer;animation:.4s ease-out both cardFadeIn;animation-delay:calc(var(--card-index,0) * 60ms + .15s);border-radius:1.25rem;padding:.25rem;text-decoration:none;transition:transform .25s,box-shadow .25s,border-color .25s;overflow:hidden}.bicycle-card .bicycle-card__image-wrapper{aspect-ratio:1.5;object-position:center center;object-fit:cover;border-radius:1rem;width:100%}.bicycle-card .bicycle-card__body{padding-inline:1rem}.bicycle-card:hover{box-shadow:0 12px 32px var(--color-card-hover-shadow), 0 4px 12px var(--color-card-shadow);border-color:var(--color-border-accent);transform:translateY(-6px)}.bicycle-card__image-wrapper{aspect-ratio:4/3;background:var(--color-surface-secondary);position:relative;overflow:hidden}.bicycle-card__image{object-fit:cover;width:100%;height:100%;transition:transform .4s}.bicycle-card:hover .bicycle-card__image{transform:scale(1.04)}.bicycle-card__body{flex-direction:column;flex:1;gap:.2rem;padding:1rem 1.25rem 1.25rem;display:flex}.bicycle-card__name{color:var(--color-text-heading);margin:0}.bicycle-card__meta{opacity:0;background:linear-gradient(#0000 0%,#0000008c);justify-content:space-between;align-items:flex-end;padding:.75rem;transition:opacity .25s,transform .25s;display:flex;position:absolute;inset:0;transform:translateY(4px)}.bicycle-card:hover .bicycle-card__meta{opacity:1;transform:translateY(0)}.bicycle-card__view-icon{color:#fff;background:#0006;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .25s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.8)}.bicycle-card:hover .bicycle-card__view-icon{transform:translate(-50%,-50%)scale(1)}.bicycle-card__actions{gap:.5rem;transition:transform .25s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.8)}.bicycle-card:hover .bicycle-card__actions{transform:translate(-50%,-50%)scale(1)}.bicycle-card__action-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:background .2s,transform .15s;display:flex}.bicycle-card__action-btn:hover{background:#ffffff40;transform:scale(1.1)}.bicycle-card__action-btn--delete:hover{background:#ef4444cc}.bicycle-card__meta-left{flex-direction:column;gap:.25rem;display:flex}.bicycle-card__meta-brand{color:#fff;text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:.95rem;font-weight:700}.bicycle-card__meta-right{align-items:center;display:flex}.bicycle-card__likes{color:#fff;font-variant-numeric:tabular-nums;align-items:center;gap:.35rem;font-size:1rem;font-weight:700;display:inline-flex}.bicycle-card__likes--btn{cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.3rem .5rem;transition:background .2s,color .2s}.bicycle-card__likes--btn:hover{background:#fff3}.bicycle-card__likes--liked{color:var(--color-primary)}.bicycle-card__likes--btn:disabled:hover{background:0 0}.bicycle-card__by{color:var(--color-text-muted);font-size:.75em;font-weight:400}.bicycle-card__owner{color:inherit;text-decoration:none}.bicycle-card__owner:hover{text-decoration:underline}@media (width<=480px){.bicycle-card__body{padding:.85rem 1rem 1rem}.bicycle-card__name{font-size:1rem}}@media (prefers-reduced-motion:reduce){.bicycle-card{animation:none}.bicycle-card:hover .bicycle-card__image{transform:none}}@keyframes modalOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(40px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.bike-modal__overlay{background:var(--color-overlay,#00000080);z-index:1000;justify-content:center;align-items:flex-start;padding:2rem 1rem;animation:.2s ease-out modalOverlayIn;display:flex;position:fixed;inset:0;overflow-y:auto}.bike-modal{background:var(--color-surface);border-radius:20px;width:100%;max-height:none;margin:auto 0;padding:2rem;animation:.3s ease-out modalSlideIn;position:relative}.bike-modal__close{float:right;z-index:10;border:1px solid var(--color-border);background:var(--color-surface);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;margin:.75rem .75rem 0 0;transition:all .2s;display:flex;position:sticky;top:0}.bike-modal__close:hover{background:var(--color-surface-secondary);color:var(--color-text-heading);border-color:var(--color-border-accent)}@media (width<=768px){.bike-modal__overlay{padding:1rem .5rem}}@media (width<=480px){.bike-modal__overlay{padding:.5rem}}@media (prefers-reduced-motion:reduce){.bike-modal__overlay,.bike-modal{animation:none}}.image-gallery{flex-direction:column;gap:.75rem;display:flex}.image-gallery__item{border-radius:12px;overflow:hidden}.image-gallery__image{object-fit:contain;width:100%;max-height:90dvh;display:block}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg, var(--color-skeleton-base) 25%, var(--color-skeleton-shine) 37%, var(--color-skeleton-base) 63%);background-size:800px 100%;border-radius:10px;animation:1.4s ease-in-out infinite shimmer}.skeleton-hero{flex-direction:column;align-items:center;gap:2rem;margin-bottom:2.5rem;padding:2.5rem 0;display:flex}.skeleton-hero__select{border-radius:10px;width:120px;height:2.2rem}.skeleton-hero__title{width:320px;height:2.5rem}.skeleton-hero__subtitle{width:100%;max-width:520px;height:1rem}.skeleton-hero__subtitle--short{width:60%;max-width:320px}.skeleton-overview__grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.skeleton-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;overflow:hidden}.skeleton-card__image{aspect-ratio:4/3;border-radius:0}.skeleton-card__body{flex-direction:column;gap:.5rem;padding:1rem 1.25rem 1.25rem;display:flex}.skeleton-card__brand{width:60px;height:.7rem}.skeleton-card__name{width:75%;height:1.1rem}.skeleton-card__meta{width:40%;height:.75rem;margin-top:.25rem}.skeleton-pagination{justify-content:center;align-items:center;gap:.5rem;margin-top:2.5rem;display:flex}.skeleton-pagination__btn{border-radius:8px;width:80px;height:2.2rem}.skeleton-pagination__page{border-radius:8px;width:2.2rem;height:2.2rem}.skeleton-detail__topbar{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.skeleton-detail__topbar-center{align-items:center;gap:.75rem;display:flex}.skeleton-detail__type{border-radius:20px;width:70px;height:1.5rem}.skeleton-detail__like{border-radius:8px;width:72px;height:2rem}.skeleton-detail__header{text-align:center;flex-direction:column;align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.skeleton-detail__brand{width:120px;height:.85rem}.skeleton-detail__name{width:60%;max-width:500px;height:5rem}.skeleton-detail__owner{width:140px;height:1rem;margin-top:.25rem}.skeleton-detail__specs{flex-wrap:wrap;justify-content:center;gap:1.5rem;margin-top:.5rem;display:flex}.skeleton-detail__spec{border-radius:8px;width:100px;height:3.5rem}.skeleton-detail__desc{width:100%;max-width:720px;height:3rem;margin:0 auto 1.5rem}.skeleton-detail__gallery{aspect-ratio:16/9;border-radius:16px;width:100%;margin-bottom:2.5rem}.skeleton-detail__components-section{margin-top:1rem}.skeleton-detail__components-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.skeleton-detail__section-title{width:140px;height:1.5rem}.skeleton-detail__view-toggle{border-radius:8px;width:76px;height:34px}.skeleton-detail__components{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.skeleton-detail__component{border-radius:10px;height:5rem}.skeleton-detail__history-section{justify-content:space-between;align-items:center;margin-top:2rem;display:flex}.skeleton-detail__history-title{width:220px;height:1.4rem}.skeleton-detail__history-toggle{border-radius:8px;width:70px;height:2rem}@media (width<=1024px){.skeleton-overview__grid{grid-template-columns:repeat(2,1fr);gap:1rem}}@media (width<=768px){.skeleton-hero{gap:1.5rem;padding:1.75rem 0}.skeleton-hero__title{width:240px;height:1.8rem}.skeleton-detail__name{height:3rem}.skeleton-detail__components{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media (width<=480px){.skeleton-hero{margin-bottom:1.75rem;padding:1.25rem 0}.skeleton-hero__title{width:200px;height:1.5rem}.skeleton-overview__grid{grid-template-columns:1fr}.skeleton-pagination__btn{width:70px;height:2rem}.skeleton-pagination__page{width:2rem;height:2rem}.skeleton-detail__name{height:2rem}.skeleton-detail__specs{gap:.75rem}.skeleton-detail__gallery{margin-bottom:1.5rem}.skeleton-detail__components{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.detail{padding-bottom:5rem}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.detail__topbar{justify-content:space-between;align-items:center;margin-bottom:1.5rem;animation:.4s ease-out both fadeInUp;display:flex}.detail__not-found{text-align:center;padding:4rem 2rem}.detail__not-found h2{color:var(--color-text)}.detail__not-found a{color:var(--color-primary);font-weight:600}.detail__header{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;margin-bottom:1.5rem;animation:.5s ease-out .1s both fadeInUp;display:flex}.detail__header-text{flex-direction:column;align-items:center;display:flex}.detail__header-meta{align-items:center;gap:2rem;display:flex}.detail__gallery{animation:.5s ease-out .2s both fadeInUp}.detail__gallery--full{width:100%;margin-bottom:2.5rem}@media (width<=768px){.detail__header-meta{flex-direction:column;gap:1rem}.detail__name{font-size:1.6rem}.detail__topbar,.detail__component-row{flex-wrap:wrap;gap:.75rem}.detail__component-row .detail__component-name,.detail__component-row .detail__component-brand{min-width:auto}.detail__component-row .detail__component-meta{width:100%;margin-left:0}.detail__components-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.detail__history-item-header{flex-wrap:wrap;gap:.5rem}.detail__history-date{width:100%;margin-left:0}.detail__components-header h2,.detail__history-header h2{font-size:1.2rem}}@media (width<=480px){.detail__name{font-size:1.35rem}.detail__topbar{margin-bottom:1.25rem}.detail__gallery{margin-bottom:1.5rem}.detail__description{font-size:.9rem}.detail__specs{gap:.75rem}.detail__spec{padding:.6rem 1rem}.detail__components-grid{grid-template-columns:1fr}.detail__component{padding:.85rem 1rem}.detail__component-row,.detail__history-item{padding:.75rem 1rem}.detail__floating-panel{border-radius:12px;max-width:calc(100% - 1.5rem);padding:.5rem .75rem}.detail__floating-center .detail__type{padding:.2rem .5rem;font-size:.65rem}}.detail__brand{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin:0 0 .25rem;font-size:.85rem}.detail__name{text-transform:uppercase;color:var(--color-text-heading);margin:0 0 .75rem;font-size:8rem;font-weight:600;line-height:1.2}.detail__type{text-transform:uppercase;letter-spacing:.05em;border-radius:20px;width:fit-content;margin-bottom:1rem;padding:.25rem .75rem;font-size:.75rem;font-weight:600;animation:.3s ease-out .3s both scaleIn;display:inline-block}.detail__type--road{color:#fff;background:#fb4f14}.detail__type--mountain{color:#fff;background:#1b2632}.detail__type--hybrid{color:#fff;background:#2c3b4d}.detail__type--gravel{color:#1b2632;background:#fb4f14}.detail__type--city{color:#1b2632;background:#c9c1b1}.detail__owner{color:var(--color-text-heading);align-items:center;gap:.5rem;font-size:1rem;font-weight:700;text-decoration:none;transition:color .2s;display:inline-flex}.detail__owner:hover{color:var(--color-text-secondary)}.detail__owner svg{flex-shrink:0}.detail__like-btn{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;border-radius:8px;align-items:center;gap:.4rem;width:fit-content;margin-bottom:1rem;padding:.45rem .9rem;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex}.detail__like-btn:hover,.detail__like-btn--liked{color:#fb4f14;background:#f5ede8;border-color:#d4a08f}[data-theme=dark] .detail__like-btn:hover,[data-theme=dark] .detail__like-btn--liked{background:#a3513926}.detail__like-btn:disabled{opacity:.6}.detail__like-btn:disabled:hover{border-color:var(--color-border);color:var(--color-text-secondary);background:var(--color-surface)}.detail__like-icon{flex-shrink:0}.detail__like-count{font-variant-numeric:tabular-nums}.detail__like-display{color:var(--color-text-muted);align-items:center;gap:.3rem;margin-bottom:1rem;font-size:.8rem;font-weight:500;display:inline-flex}.detail__description{color:var(--color-text-body);text-align:center;max-width:720px;margin:0 auto 1.5rem;line-height:1.7;animation:.4s ease-out .15s both fadeInUp}.detail__specs{flex-wrap:wrap;gap:1.5rem;display:flex}.detail__spec{background:var(--color-surface-secondary);border-radius:8px;flex-direction:column;gap:.25rem;padding:.75rem 1.25rem;animation:.4s ease-out both fadeInUp;display:flex}.detail__spec:first-child{animation-delay:.35s}.detail__spec:nth-child(2){animation-delay:.45s}.detail__spec:nth-child(3){animation-delay:.55s}.detail__spec-label{text-transform:uppercase;color:var(--color-text-muted);letter-spacing:.05em;font-size:.75rem}.detail__spec-value{color:var(--color-text-heading);font-weight:600}@keyframes floatPanelIn{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.detail__floating-panel{background:var(--color-surface-translucent,#ffffffd9);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);width:fit-content;max-width:calc(100% - 3rem);box-shadow:0 4px 24px var(--color-floating-shadow,#00000014);z-index:90;border-radius:16px;justify-content:center;align-items:center;gap:1rem;padding:.6rem 1.25rem;animation:.4s ease-out .3s both floatPanelIn;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%)}[data-theme=dark] .detail__floating-panel{background:#1e1e1ed9}.detail__floating-center{align-items:center;gap:.75rem;display:flex}.detail__floating-center .detail__type{margin-bottom:0;animation:none}.detail__floating-center .detail__like-btn,.detail__floating-center .detail__like-display{margin-bottom:0}.detail__components{margin-top:1rem;animation:.5s ease-out .4s both fadeInUp}.detail__components-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.detail__components-header h2{color:var(--color-text-heading);margin:0;font-size:1.5rem;font-weight:700}.detail__view-toggle{background:var(--color-surface-secondary);border-radius:8px;gap:.25rem;padding:.2rem;display:flex}.detail__view-btn{width:34px;height:34px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .2s;display:flex}.detail__view-btn:hover{color:var(--color-text-secondary);background:var(--color-border)}.detail__view-btn--active{background:var(--color-surface);color:var(--color-primary);box-shadow:0 1px 3px var(--color-card-shadow)}.detail__view-btn--active:hover{background:var(--color-surface);color:var(--color-primary)}.detail__components-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.detail__components-list{flex-direction:column;gap:.5rem;display:flex}.detail__component{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:1rem 1.25rem;transition:box-shadow .2s,transform .2s;animation:.4s ease-out both fadeInUp}.detail__component:first-child{animation-delay:.5s}.detail__component:nth-child(2){animation-delay:.55s}.detail__component:nth-child(3){animation-delay:.6s}.detail__component:nth-child(4){animation-delay:.65s}.detail__component:nth-child(5){animation-delay:.7s}.detail__component:nth-child(6){animation-delay:.75s}.detail__component:nth-child(7){animation-delay:.8s}.detail__component:nth-child(8){animation-delay:.85s}.detail__component:hover{transform:translateY(-2px);box-shadow:0 2px 12px #0000000f}.detail__component-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;align-items:center;gap:1.5rem;padding:.85rem 1.25rem;transition:box-shadow .2s,transform .2s;display:flex}.detail__component-row:hover{transform:translateY(-2px);box-shadow:0 2px 12px #0000000f}.detail__component-row .detail__component-name{min-width:120px;margin:0}.detail__component-row .detail__component-brand{min-width:140px;margin:0}.detail__component-row .detail__component-meta{margin-left:auto}.detail__component-name{text-transform:uppercase;color:var(--color-text-muted);letter-spacing:.05em;margin:0 0 .25rem;font-size:.8rem}.detail__component-brand{color:var(--color-text-heading);margin:0 0 .5rem;font-weight:600}.detail__component-meta{color:var(--color-text-secondary);gap:1rem;font-size:.8rem;display:flex}.detail__history{margin-top:2rem;animation:.4s ease-out .4s both fadeInUp}.detail__history-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.detail__history-header h2{color:var(--color-text-heading);letter-spacing:-.01em;margin:0;font-size:1.4rem;font-weight:700}.detail__history-toggle{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;border-radius:8px;padding:.4rem .9rem;font-size:.85rem;font-weight:600;transition:all .2s}.detail__history-toggle:hover{border-color:var(--color-border-accent);color:var(--color-primary);background:var(--color-primary-bg-hover)}.detail__history-list{flex-direction:column;gap:.5rem;display:flex}.detail__history-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:.85rem 1.15rem;transition:border-color .2s}.detail__history-item:hover{border-color:var(--color-border-hover)}.detail__history-item--added{border-left:3px solid #2c3b4d}.detail__history-item--removed,.detail__history-item--updated{border-left:3px solid #fb4f14}.detail__history-item-header{align-items:center;gap:.75rem;margin-bottom:.35rem;display:flex}.detail__history-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:4px;padding:.15rem .5rem;font-size:.65rem;font-weight:700;display:inline-block}.detail__history-badge--added{color:#2c3b4d;background:#e0e5ea}.detail__history-badge--removed{color:#fb4f14;background:#f5ede8}.detail__history-badge--updated{color:#fb4f14;background:#fff0da}[data-theme=dark] .detail__history-badge--added{color:#c9c1b1;background:#2c3b4d4d}[data-theme=dark] .detail__history-badge--removed{color:#fb4f14;background:#a3513926}[data-theme=dark] .detail__history-badge--updated{color:#fb4f14;background:#ffb16226}.detail__history-component{color:var(--color-text-heading);font-size:.9rem;font-weight:700}.detail__history-date{color:var(--color-text-muted);margin-left:auto;font-size:.75rem;font-weight:500}.detail__history-details{padding-left:.25rem}.detail__history-diff p{color:var(--color-text-body);margin:.2rem 0;font-size:.85rem}.detail__history-field{color:var(--color-text-secondary);font-weight:600}.detail__history-old{color:#fb4f14;text-decoration:line-through}.detail__history-new{color:#2c3b4d;font-weight:600}.detail__history-summary{color:var(--color-text-body);margin:.15rem 0 0;font-size:.85rem}.detail__history-summary--removed{color:var(--color-text-muted);text-decoration:line-through}@media (prefers-reduced-motion:reduce){.detail__topbar,.detail__header,.detail__gallery,.detail__type,.detail__spec,.detail__description,.detail__components,.detail__component,.detail__component-row,.detail__history{animation:none}.detail__floating-panel{animation:none;transform:translate(-50%)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.hero{flex-direction:column;align-items:center;gap:2rem;margin-bottom:2.5rem;padding-top:2.5rem;animation:.4s ease-out both fadeInUp;display:flex}.hero__title{color:var(--color-text-heading);letter-spacing:-.03em;margin:0;font-size:2.5rem;font-weight:800;line-height:1.15}.hero__subtitle{color:var(--color-text-heading);text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:1.375rem;font-weight:300;line-height:2.5rem;overflow-x:hidden}.overview__grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;animation:.3s ease-out .15s both fadeIn;display:grid}.overview__empty{text-align:center;color:var(--color-text-muted);padding:4rem 2rem;font-size:1rem}.pagination{justify-content:center;align-items:center;gap:.5rem;margin-top:2.5rem;animation:.35s ease-out both fadeInUp;display:flex}.pagination__btn{border:1px solid var(--color-border);background:var(--color-input-bg);color:var(--color-text);cursor:pointer;border-radius:8px;padding:.5rem 1rem;font-size:.85rem;font-weight:500;transition:border-color .2s,background .2s}.pagination__btn:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-input-focus-shadow)}.pagination__btn:disabled{opacity:.4;cursor:not-allowed}.pagination__pages{align-items:center;gap:.25rem;display:flex}.pagination__page{border:1px solid var(--color-border);background:var(--color-input-bg);width:2.2rem;height:2.2rem;color:var(--color-text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:.85rem;font-weight:500;transition:border-color .2s,background .2s,color .2s;display:flex}.pagination__page:hover{border-color:var(--color-primary)}.pagination__page--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;cursor:default}.pagination__ellipsis{text-align:center;width:2.2rem;color:var(--color-text-muted);font-size:.9rem}@media (width<=1024px){.overview__grid{grid-template-columns:repeat(2,1fr);gap:1rem}}@media (width<=768px){.hero{gap:1.5rem;padding:1.75rem 0}.hero__title{font-size:1.8rem}.overview__grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.pagination{gap:.35rem}.pagination__btn{padding:.45rem .75rem;font-size:.8rem}.pagination__page{width:2rem;height:2rem;font-size:.8rem}}@media (width<=480px){.hero{margin-bottom:1.75rem;padding:1.25rem 0}.hero__title{font-size:1.5rem}.hero__subtitle{font-size:.95rem}.overview__grid{grid-template-columns:1fr;gap:1rem}.overview__empty{padding:2.5rem 1rem}}@media (prefers-reduced-motion:reduce){.hero,.overview__grid{animation:none}}.confirm-dialog__overlay{background:var(--color-overlay);z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--color-surface);width:90%;max-width:400px;box-shadow:0 20px 60px var(--color-dialog-shadow);border-radius:16px;padding:1.75rem}.confirm-dialog__title{color:var(--color-text-heading);margin:0 0 .75rem;font-size:1.2rem;font-weight:700}.confirm-dialog__message{color:var(--color-text-secondary);margin:0 0 1.5rem;font-size:.9rem;line-height:1.6}.confirm-dialog__actions{justify-content:flex-end;gap:.75rem;display:flex}.confirm-dialog__cancel{color:var(--color-text-secondary);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:10px;padding:.55rem 1.25rem;font-size:.9rem;font-weight:500;transition:border-color .2s,color .2s}.confirm-dialog__cancel:hover{border-color:var(--color-text-muted);color:var(--color-text)}.confirm-dialog__confirm{color:#fff;cursor:pointer;background:#fb4f14;border:none;border-radius:10px;padding:.55rem 1.25rem;font-size:.9rem;font-weight:600;transition:background .2s}.confirm-dialog__confirm:hover{background:#8b4430}.confirm-dialog__confirm:disabled,.confirm-dialog__cancel:disabled{opacity:.6;cursor:not-allowed}.user-page__layout{flex-direction:column;gap:2.5rem;display:flex}.user-page__settings h1{color:var(--color-text-heading);letter-spacing:-.02em;margin:0 0 1.75rem;font-size:2rem;font-weight:800}.user-page__settings-row{align-items:flex-start;gap:2rem;display:flex}.user-page__settings-row .user-page__form,.user-page__settings-row .user-page__info{flex:1;width:100%;min-width:0}.user-page__info{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;gap:.65rem;margin-top:1.5rem;margin-bottom:0;padding:1rem 1.25rem;display:flex}.user-page__info-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.user-page__info-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);flex-shrink:0;font-size:.75rem;font-weight:600}.user-page__info-value{color:var(--color-text);text-align:right;text-overflow:ellipsis;font-size:.9rem;font-weight:500;overflow:hidden}.user-page__form{flex-direction:column;gap:1.25rem;display:flex}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-group label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);font-size:.75rem;font-weight:600}.form-group input,.form-group select{border:1px solid var(--color-border);background:var(--color-input-bg);color:var(--color-text);border-radius:10px;outline:none;padding:.6rem .85rem;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-input-focus-shadow)}.user-page__save{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:10px;width:fit-content;padding:.65rem 1.5rem;font-size:.9rem;font-weight:600;transition:background .2s,transform .1s}.user-page__save:hover{background:var(--color-primary-hover)}.user-page__save:active{transform:scale(.98)}.user-page__bikes h2,.user-page__liked h2{color:var(--color-text-heading);letter-spacing:-.01em;margin:0 0 1.25rem;font-size:1.4rem;font-weight:700}.user-page__empty{color:var(--color-text-muted);font-size:.95rem}.user-page__bike-grid{grid-template-columns:repeat(5,1fr);gap:1rem;display:grid}.user-page__bike-grid--mine{grid-template-columns:repeat(4,1fr)}.user-page__bike-grid .bicycle-card__body{padding:.6rem .75rem .75rem}.user-page__bike-grid .bicycle-card__name{font-size:.85rem}.user-page__bike-grid .bicycle-card__meta-brand{font-size:.75rem}@media (width<=1200px){.user-page__bike-grid{grid-template-columns:repeat(4,1fr)}.user-page__bike-grid--mine{grid-template-columns:repeat(3,1fr)}}@media (width<=1024px){.user-page__bike-grid{grid-template-columns:repeat(3,1fr)}.user-page__bike-grid--mine{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.user-page__layout{gap:2rem}.user-page__settings h1{font-size:1.6rem}.user-page__settings-row{flex-direction:column}.user-page__bike-grid{grid-template-columns:repeat(2,1fr)}.user-page__bike-grid--mine{grid-template-columns:1fr}}@media (width<=600px){.user-page__bike-grid{grid-template-columns:1fr}}@media (width<=480px){.user-page__settings h1{margin-bottom:1.25rem;font-size:1.4rem}.user-page__info{padding:.85rem 1rem}.user-page__info-row{flex-direction:column;align-items:flex-start;gap:.15rem}.user-page__info-value{text-align:left;word-break:break-all}.user-page__bikes h2,.user-page__liked h2{font-size:1.2rem}}.autocomplete{position:relative}.autocomplete input{width:100%}.autocomplete__list{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:0 8px 24px var(--color-card-shadow);z-index:50;border-radius:10px;max-height:200px;margin:.3rem 0 0;padding:.3rem;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.autocomplete__item{cursor:pointer;color:var(--color-text);border-radius:6px;padding:.5rem .75rem;font-size:.9rem;transition:background .15s}.autocomplete__item--active{background:var(--color-autocomplete-active);color:var(--color-primary)}.import-dialog__overlay{background:var(--color-overlay);z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.import-dialog{background:var(--color-surface);width:90%;max-width:640px;box-shadow:0 20px 60px var(--color-dialog-shadow);border-radius:16px;flex-direction:column;max-height:80vh;padding:1.75rem;display:flex}.import-dialog__title{color:var(--color-text-heading);margin:0 0 .5rem;font-size:1.2rem;font-weight:700}.import-dialog__description{color:var(--color-text-secondary);margin:0 0 1rem;font-size:.9rem;line-height:1.6}.import-dialog__textarea{border:1px solid var(--color-border);resize:vertical;box-sizing:border-box;width:100%;color:var(--color-text);background:var(--color-input-bg);border-radius:10px;outline:none;padding:.75rem;font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:.85rem;transition:border-color .2s,box-shadow .2s}.import-dialog__textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-input-focus-shadow)}.import-dialog__textarea::placeholder{color:var(--color-text-muted);white-space:pre}.import-dialog__error{color:#ef4444;margin:.5rem 0 0;font-size:.85rem}.import-dialog__preview{border:1px solid var(--color-border);border-radius:10px;max-height:300px;overflow:auto}.import-dialog__table{border-collapse:collapse;width:100%;font-size:.85rem}.import-dialog__table th{background:var(--color-table-header-bg);text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);padding:.5rem .75rem;font-size:.7rem;font-weight:600;position:sticky;top:0}.import-dialog__table td{border-top:1px solid var(--color-table-row-border);color:var(--color-text);padding:.5rem .75rem}.import-dialog__table tr:hover td{background:var(--color-table-row-hover)}.import-dialog__count{color:var(--color-text-muted);margin:.75rem 0 0;font-size:.85rem}.import-dialog__actions{justify-content:flex-end;gap:.75rem;margin-top:1.25rem;display:flex}.import-dialog__cancel{color:var(--color-text-secondary);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:10px;padding:.55rem 1.25rem;font-size:.9rem;font-weight:500;transition:border-color .2s,color .2s}.import-dialog__cancel:hover{border-color:var(--color-text-muted);color:var(--color-text)}.import-dialog__confirm{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:.55rem 1.25rem;font-size:.9rem;font-weight:600;transition:background .2s}.import-dialog__confirm:hover{background:var(--color-primary-hover)}.add-bicycle h1{color:var(--color-text-heading);letter-spacing:-.02em;margin:0 0 1.75rem;font-size:2rem;font-weight:800}.add-bicycle__form{flex-direction:column;gap:1.75rem;display:flex}.add-bicycle__section{background:var(--color-surface);border-radius:16px;padding:1.75rem}.add-bicycle__section h2{color:var(--color-text-heading);letter-spacing:-.01em;margin:0 0 1.25rem;font-size:1.15rem;font-weight:700}.add-bicycle__section-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.add-bicycle__section-header h2{margin:0}.add-bicycle__section-header-actions{align-items:center;gap:.5rem;display:flex}.add-bicycle__import-btn{color:var(--color-text-body);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:8px;padding:.45rem .9rem;font-size:.8rem;font-weight:600;transition:background .2s,border-color .2s}.add-bicycle__import-btn:hover{background:var(--color-surface-secondary);border-color:var(--color-text-muted)}.add-bicycle__row{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:.75rem;display:grid}@media (width<=600px){.add-bicycle__row{grid-template-columns:1fr}}.add-bicycle .form-group{flex-direction:column;gap:.4rem;margin-bottom:.75rem;display:flex}.add-bicycle .form-group label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);font-size:.75rem;font-weight:600}.add-bicycle .form-group input,.add-bicycle .form-group select,.add-bicycle .form-group textarea{border:1px solid var(--color-border);background:var(--color-input-bg);resize:vertical;color:var(--color-text);border-radius:10px;outline:none;padding:.6rem .85rem;font-family:inherit;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.add-bicycle .form-group input:focus,.add-bicycle .form-group select:focus,.add-bicycle .form-group textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-input-focus-shadow)}.add-bicycle__component{border:1px solid var(--color-border);border-radius:10px;margin-bottom:.75rem;padding:1rem;transition:border-color .2s}.add-bicycle__component:hover{border-color:var(--color-border-hover)}.add-bicycle__component-row{grid-template-columns:1fr 1.5fr .75fr .75fr auto;align-items:end;gap:.75rem;display:grid}@media (width<=768px){.add-bicycle__component-row{grid-template-columns:1fr 1fr}}.add-bicycle__add-btn{color:var(--color-primary);border:1px solid var(--color-primary);cursor:pointer;background:0 0;border-radius:8px;padding:.45rem .9rem;font-size:.8rem;font-weight:600;transition:background .2s,color .2s}.add-bicycle__add-btn:hover{background:var(--color-primary);color:#fff}.add-bicycle__remove-btn{color:#fb4f14;cursor:pointer;background:#f5ede8;border:none;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;margin-bottom:.75rem;font-size:1.25rem;transition:background .2s;display:flex}.add-bicycle__remove-btn:hover{background:#ecddd6}[data-theme=dark] .add-bicycle__remove-btn{background:#a3513926}[data-theme=dark] .add-bicycle__remove-btn:hover{background:#a3513940}.add-bicycle__actions{z-index:10;background:var(--color-actions-bg);border:1px solid var(--color-border);border-radius:16px;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex;position:sticky;bottom:0}.add-bicycle__actions-right{gap:.75rem;display:flex}.add-bicycle__delete{color:var(--color-text-muted);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:10px;padding:.65rem 1.25rem;font-size:.9rem;font-weight:500;transition:background .2s,color .2s,border-color .2s}.add-bicycle__delete:hover{color:#fff;background:#fb4f14;border-color:#fb4f14}.add-bicycle__delete:disabled{opacity:.6;cursor:not-allowed}.add-bicycle__cancel{color:var(--color-text-secondary);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:10px;padding:.65rem 1.25rem;font-size:.9rem;font-weight:500;transition:border-color .2s,color .2s}.add-bicycle__cancel:hover{border-color:var(--color-text-muted);color:var(--color-text)}.add-bicycle__submit{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:.65rem 1.5rem;font-size:.9rem;font-weight:600;transition:background .2s,transform .1s}.add-bicycle__submit:hover{background:var(--color-primary-hover)}.add-bicycle__submit:active{transform:scale(.98)}.add-bicycle__submit:disabled,.add-bicycle__cancel:disabled{opacity:.6;cursor:not-allowed}.add-bicycle__image-previews{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;display:flex}.add-bicycle__image-preview{border:1px solid var(--color-border);border-radius:10px;width:120px;height:120px;position:relative;overflow:hidden}.add-bicycle__image-preview img{object-fit:cover;width:100%;height:100%}.add-bicycle__image-remove{background:var(--color-image-remove-bg);color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:none;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;font-size:1rem;line-height:1;transition:background .2s;display:flex;position:absolute;top:6px;right:6px}.add-bicycle__image-remove:hover{background:#a35139e6}.add-bicycle__error{color:#fb4f14;margin:0;font-size:.9rem}@media (width<=768px){.add-bicycle h1{margin-bottom:1.25rem;font-size:1.6rem}.add-bicycle__section{padding:1.25rem}.add-bicycle__actions{flex-direction:column;gap:.75rem;padding:1rem}.add-bicycle__actions-right{justify-content:flex-end;width:100%}.add-bicycle__image-preview{width:100px;height:100px}}@media (width<=480px){.add-bicycle h1{margin-bottom:1rem;font-size:1.4rem}.add-bicycle__section{border-radius:12px;padding:1rem}.add-bicycle__section h2{font-size:1rem}.add-bicycle__component-row{grid-template-columns:1fr}.add-bicycle__section-header{flex-direction:column;align-items:flex-start;gap:.75rem}.add-bicycle__actions-right{flex-direction:column;width:100%}.add-bicycle__cancel,.add-bicycle__submit,.add-bicycle__delete{text-align:center;width:100%}.add-bicycle__image-preview{width:80px;height:80px}.add-bicycle__image-previews{gap:.5rem}}.user-bikes__back{color:var(--color-primary);margin-bottom:1.5rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:opacity .2s;animation:.35s ease-out both fadeInUp;display:inline-block}.user-bikes__back:hover{opacity:.7}.user-bikes__header{align-items:baseline;gap:.75rem;margin-bottom:1.75rem;animation:.35s ease-out 50ms both fadeInUp;display:flex}.user-bikes__header h1{color:var(--color-text-heading);letter-spacing:-.02em;margin:0;font-size:2rem;font-weight:800}.user-bikes__count{color:var(--color-text-muted);margin:0;font-size:.9rem;font-weight:500}.user-bikes__filters{flex-wrap:wrap;gap:.75rem;margin-bottom:2rem;animation:.35s ease-out .1s both fadeInUp;display:flex}.user-bikes__search{border:1px solid var(--color-border);background:var(--color-input-bg);min-width:200px;color:var(--color-text);border-radius:10px;outline:none;flex:1;padding:.6rem 1rem;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.user-bikes__search:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-input-focus-shadow)}.user-bikes__selects{gap:.5rem;display:flex}.user-bikes__selects select{border:1px solid var(--color-border);background:var(--color-input-bg);cursor:pointer;color:var(--color-text);border-radius:10px;outline:none;padding:.6rem 1rem;font-size:.9rem;transition:border-color .2s}.user-bikes__selects select:focus{border-color:var(--color-primary)}.user-bikes__grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;animation:.3s ease-out .15s both fadeIn;display:grid}.user-bikes__empty{text-align:center;color:var(--color-text-muted);padding:4rem 2rem;font-size:1rem}.user-bikes__not-found{text-align:center;padding:4rem 2rem;animation:.35s ease-out both fadeInUp}.user-bikes__not-found h2{color:var(--color-text-heading);margin:0 0 .5rem;font-size:1.6rem;font-weight:700}.user-bikes__not-found p{color:var(--color-text-muted);margin:0 0 1.5rem;font-size:1rem}.user-bikes__back-link{background:var(--color-primary);color:#fff;border-radius:10px;padding:.6rem 1.25rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .2s;display:inline-block}.user-bikes__back-link:hover{background:var(--color-primary-hover)}@media (width<=1024px){.user-bikes__grid{grid-template-columns:repeat(2,1fr);gap:1rem}}@media (width<=768px){.user-bikes__header h1{font-size:1.6rem}.user-bikes__filters{gap:.5rem}.user-bikes__selects{flex-wrap:wrap;width:100%}.user-bikes__selects select{flex:1;min-width:0}.user-bikes__grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}}@media (width<=480px){.user-bikes__header{flex-direction:column;gap:.25rem;margin-bottom:1.25rem}.user-bikes__header h1{font-size:1.4rem}.user-bikes__filters{flex-direction:column;margin-bottom:1.5rem}.user-bikes__search{width:100%;min-width:0}.user-bikes__selects{gap:.5rem}.user-bikes__selects select{padding:.55rem .75rem;font-size:.85rem}.user-bikes__grid{grid-template-columns:1fr;gap:1rem}.user-bikes__empty{padding:2.5rem 1rem}}@media (prefers-reduced-motion:reduce){.user-bikes__back,.user-bikes__header,.user-bikes__filters,.user-bikes__grid,.user-bikes__not-found{animation:none}}.legal-page{max-width:760px;margin:0 auto}.legal-page h1{color:var(--color-text-heading);margin:0 0 .25rem;font-size:2rem;font-weight:800}.legal-page__updated{color:var(--color-text-secondary);margin:0 0 2rem;font-size:.9rem}.legal-page section{margin-bottom:2rem}.legal-page h2{color:var(--color-text);margin:0 0 .5rem;font-size:1.15rem;font-weight:700}.legal-page p{color:var(--color-text-body);margin:0 0 .75rem;line-height:1.7}.legal-page ul{color:var(--color-text-body);margin:0 0 .75rem;padding-left:1.5rem;line-height:1.7}.legal-page li{margin-bottom:.35rem}.legal-page a{color:var(--color-primary);text-decoration:none}.legal-page a:hover{text-decoration:underline}@media (width<=768px){.legal-page h1{font-size:1.6rem}.legal-page section{margin-bottom:1.5rem}}@media (width<=480px){.legal-page h1{font-size:1.4rem}.legal-page h2{font-size:1rem}.legal-page p,.legal-page ul{font-size:.9rem}}.cookie-banner{background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:0 -4px 20px var(--color-cookie-shadow);z-index:1000;padding:1.25rem 1.5rem;animation:.3s ease-out cookie-banner--slide-up;position:fixed;bottom:0;left:0;right:0}@keyframes cookie-banner--slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.cookie-banner__content{align-items:center;gap:1.5rem;max-width:1200px;margin:0 auto;display:flex}.cookie-banner__text{color:var(--color-text-body);flex:1;font-size:.9rem;line-height:1.6}.cookie-banner__text a{color:var(--color-primary-light);font-weight:500;text-decoration:none}.cookie-banner__text a:hover{text-decoration:underline}.cookie-banner__actions{flex-shrink:0;gap:.75rem;display:flex}.cookie-banner__decline{color:var(--color-text-secondary);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:10px;padding:.55rem 1.25rem;font-size:.9rem;font-weight:500;transition:border-color .2s,color .2s}.cookie-banner__decline:hover{border-color:var(--color-text-muted);color:var(--color-text)}.cookie-banner__accept{background:var(--color-primary-light);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:.55rem 1.25rem;font-size:.9rem;font-weight:600;transition:background .2s}.cookie-banner__accept:hover{background:var(--color-primary)}@media (width<=768px){.cookie-banner__content{flex-direction:column;align-items:stretch;gap:1rem}.cookie-banner__actions{justify-content:flex-end}}
