.button,.icon-button,.pill,.icon-btn,.download-trigger{border:1px solid transparent;background:transparent;color:inherit;cursor:pointer;text-decoration:none;transition:color .18s ease,background-color .18s ease,border-color .18s ease,transform .22s var(--ease-out)}.button,.icon-button,.icon-btn,.download-trigger{border-radius:var(--radius-sm)}.button{display:inline-flex;min-height:2.75rem;align-items:center;justify-content:center;gap:.5rem;padding-inline:1rem;font-weight:600}.button-small{min-height:2rem;padding-inline:.7rem;font-size:.82rem}.button-outline,.download-trigger{border-color:var(--color-divider);background:var(--color-surface)}.button-outline:hover,.download-trigger:hover{border-color:var(--color-primary);background:var(--color-surface-elevated)}.button-solid{background:var(--color-primary);color:#17130b}.button-solid:hover{background:var(--color-primary-strong);transform:translateY(-2px)}.button-soft{background:#e0b74f;color:#17130b}.button-ghost{background:transparent}.button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.45}.icon-button,.icon-btn{display:inline-flex;width:2.25rem;height:2.25rem;align-items:center;justify-content:center;padding:0}.icon-button:hover,.icon-btn:hover{background:var(--color-surface-elevated);color:var(--color-primary-strong)}.back-link{display:inline-flex;color:var(--color-text-secondary);font-family:var(--font-measure);font-size:.7rem;text-decoration:none}.back-link:hover{color:var(--color-primary-strong)}.card{border:1px solid var(--color-divider);border-radius:var(--radius-lg);background:var(--color-surface)}.card-soft{background:var(--color-surface-soft)}.card-outline,.card-content{padding:1rem}.input-shell{position:relative}.input-shell .app-icon{position:absolute;z-index:1;top:50%;left:1rem;color:var(--color-text-secondary);pointer-events:none;transform:translateY(-50%)}.input-native{width:100%;min-height:2.8rem;padding:0 1rem 0 2.8rem;border:1px solid var(--color-divider);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);caret-color:var(--color-primary-strong)}.input-native::placeholder{color:#84847a}.input-native:hover{border-color:var(--color-divider-strong)}.input-native:focus{border-color:var(--color-primary);outline:2px solid rgba(200,154,73,.2);outline-offset:2px}.pill-row{margin-bottom:.75rem}.pill{min-height:2rem;padding-inline:.75rem;border-color:var(--color-divider);border-radius:999px;color:var(--color-text-secondary);font-size:.82rem}.pill:hover{border-color:var(--color-divider-strong);color:var(--color-text-primary)}.pill-active{border-color:var(--color-primary);background:#c89a491f;color:var(--color-primary-strong)}.badge{display:inline-flex;min-height:1.6rem;align-items:center;gap:.35rem;padding-inline:.55rem;border:1px solid var(--color-divider);border-radius:999px;color:var(--color-text-secondary);font-family:var(--font-measure);font-size:.65rem}.badge-muted{opacity:.75}.badge-primary{border-color:#c89a4973;color:var(--color-primary-strong)}.repo-lang-dot{display:inline-flex;align-items:center;gap:.35rem}.repo-lang-dot-indicator{display:inline-block;width:.55rem;height:.55rem;border-radius:50%}.alert{padding:.9rem 1rem;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-surface)}.alert-error{border-color:#d96a5c8c;color:#f2b4a9}.alert-warning{border-color:#d5a3438c;color:#ead09a}.spinner{width:1.35rem;height:1.35rem;border:2px solid var(--color-divider);border-top-color:var(--color-primary);border-radius:50%;animation:spin .85s linear infinite}.spinner-lg{width:2.25rem;height:2.25rem;border-width:3px}.skeleton{min-height:1rem;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--color-surface) 0%,var(--color-surface-elevated) 50%,var(--color-surface) 100%);background-size:220% 100%;animation:shimmer 1.3s linear infinite}.progress-bar{height:3px;overflow:hidden;background:var(--color-divider)}.progress-bar:before{display:block;width:35%;height:100%;content:"";background:var(--color-primary);animation:progress-slide 1.2s ease-in-out infinite}.status-page,.redirect-page,.route-loading-shell,.route-loading-state{min-height:70dvh}.status-page,.redirect-page{padding:1.5rem}.status-copy{max-width:34rem}.redirect-shell .redirect-page,.redirect-shell .status-page{width:100%;min-height:100dvh;padding:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:220% 0}to{background-position:-220% 0}}@keyframes progress-slide{0%{transform:translate(-120%)}to{transform:translate(340%)}}
