:root {
    --refresh-bar-height: 3.5rem;
}

* {
    scroll-behavior: smooth;
    box-sizing: border-box;
}

body {
    overflow-x: hidden;
    width: 100vw;
    scrollbar-width: thin;
}

.content-height {
    height: calc(100vh - var(--refresh-bar-height));
}

.refresh-bar {
    height: var(--refresh-bar-height);
}

.ripple-button {
    position: relative; /* 相对定位，以便波纹效果在其内部定位 */
    overflow: hidden; /* 隐藏超出按钮边界的波纹 */
    border: none;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.ripple-button::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1000%;
    height: 1000%;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 50%;
    transform: translate(-50%, -50%) scale(0);
    opacity: 1;
    transition: transform 0.6s ease, opacity 1s ease;
}

.ripple-button:active::before {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0;
}

.ripple-button:active {
    transform: scale(0.95); /* 点击时缩小按钮，模拟点击感 */
}

/* 动画效果 */
@keyframes ripple-animation {
    to {
        transform: scale(4); /* 放大到4倍 */
        opacity: 0; /* 逐渐消失 */
    }
}

/* ------------------------------------------------------------------------------------------------------ */

.pure-material-textfield-outlined {
    --pure-material-safari-helper1: rgb(
        var(--pure-material-primary-rgb, 33, 150, 243)
    );
    position: relative;
    display: inline-block;
    padding-top: 6px;
    font-family: var(
        --pure-material-font,
        "Roboto",
        "Segoe UI",
        BlinkMacSystemFont,
        system-ui,
        -apple-system
    );
    font-size: 12px;
    line-height: 1.2;
    overflow: hidden;
}

/* Input, Textarea */
.pure-material-textfield-outlined > input,
.pure-material-textfield-outlined > textarea {
    box-sizing: border-box;
    margin: 0;
    border: solid 1px; /* Safari */
    border-color: rgba(var(--pure-material-onsurface-rgb, 0, 0, 0), 0.6);
    border-top-color: transparent;
    border-radius: 4px;
    padding: 7px 6px 7px;
    width: 100%;
    height: inherit;
    color: rgba(var(--pure-material-onsurface-rgb, 0, 0, 0), 0.87);
    background-color: transparent;
    box-shadow: none; /* Firefox */
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    caret-color: rgb(var(--pure-material-primary-rgb, 33, 150, 243));
    transition: border 0.2s, box-shadow 0.2s;
}

/* Span */
.pure-material-textfield-outlined > input + span,
.pure-material-textfield-outlined > textarea + span {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    border-color: rgba(var(--pure-material-onsurface-rgb, 0, 0, 0), 0.6);
    width: 100%;
    max-height: 100%;
    color: rgba(var(--pure-material-onsurface-rgb, 0, 0, 0), 0.6);
    font-size: 70%;
    line-height: 12px;
    cursor: text;
    transition: color 0.2s, font-size 0.2s, line-height 0.2s;
}

/* Corners */
.pure-material-textfield-outlined > input + span::before,
.pure-material-textfield-outlined > input + span::after,
.pure-material-textfield-outlined > textarea + span::before,
.pure-material-textfield-outlined > textarea + span::after {
    content: "";
    display: block;
    box-sizing: border-box;
    margin-top: 6px;
    border-top: solid 1px;
    border-top-color: rgba(var(--pure-material-onsurface-rgb, 0, 0, 0), 0.6);
    min-width: 8px;
    height: 6px;
    pointer-events: none;
    box-shadow: inset 0 1px transparent;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.pure-material-textfield-outlined > input + span::before,
.pure-material-textfield-outlined > textarea + span::before {
    margin-right: 3px;
    border-left: solid 1px transparent;
    border-radius: 4px 0;
}

.pure-material-textfield-outlined > input + span::after,
.pure-material-textfield-outlined > textarea + span::after {
    flex-grow: 1;
    margin-left: 3px;
    border-right: solid 1px transparent;
    border-radius: 0 4px;
}

/* Hover */
.pure-material-textfield-outlined:hover > input,
.pure-material-textfield-outlined:hover > textarea {
    border-color: rgba(var(--pure-material-onsurface-rgb, 0, 0, 0), 0.87);
    border-top-color: transparent;
}

.pure-material-textfield-outlined:hover > input + span::before,
.pure-material-textfield-outlined:hover > textarea + span::before,
.pure-material-textfield-outlined:hover > input + span::after,
.pure-material-textfield-outlined:hover > textarea + span::after {
    border-top-color: rgba(var(--pure-material-onsurface-rgb, 0, 0, 0), 0.87);
}

.pure-material-textfield-outlined:hover > input:not(:focus):placeholder-shown,
.pure-material-textfield-outlined:hover
    > textarea:not(:focus):placeholder-shown {
    border-color: rgba(var(--pure-material-onsurface-rgb, 0, 0, 0), 0.87);
}

/* Placeholder-shown */
.pure-material-textfield-outlined > input:not(:focus):placeholder-shown,
.pure-material-textfield-outlined > textarea:not(:focus):placeholder-shown {
    border-top-color: rgba(var(--pure-material-onsurface-rgb, 0, 0, 0), 0.6);
}

.pure-material-textfield-outlined > input:not(:focus):placeholder-shown + span,
.pure-material-textfield-outlined
    > textarea:not(:focus):placeholder-shown
    + span {
    font-size: inherit;
    line-height: 42px;
}

.pure-material-textfield-outlined
    > input:not(:focus):placeholder-shown
    + span::before,
.pure-material-textfield-outlined
    > textarea:not(:focus):placeholder-shown
    + span::before,
.pure-material-textfield-outlined
    > input:not(:focus):placeholder-shown
    + span::after,
.pure-material-textfield-outlined
    > textarea:not(:focus):placeholder-shown
    + span::after {
    border-top-color: transparent;
}

/* Focus */
.pure-material-textfield-outlined > input:focus,
.pure-material-textfield-outlined > textarea:focus {
    border-color: rgb(var(--pure-material-primary-rgb, 33, 150, 243));
    border-top-color: transparent;
    box-shadow: inset 1px 0 var(--pure-material-safari-helper1),
        inset -1px 0 var(--pure-material-safari-helper1),
        inset 0 -1px var(--pure-material-safari-helper1);
    outline: none;
}

.pure-material-textfield-outlined > input:focus + span,
.pure-material-textfield-outlined > textarea:focus + span {
    color: rgb(var(--pure-material-primary-rgb, 33, 150, 243));
}

.pure-material-textfield-outlined > input:focus + span::before,
.pure-material-textfield-outlined > input:focus + span::after,
.pure-material-textfield-outlined > textarea:focus + span::before,
.pure-material-textfield-outlined > textarea:focus + span::after {
    border-top-color: var(--pure-material-safari-helper1) !important;
    box-shadow: inset 0 1px var(--pure-material-safari-helper1);
}

/* Disabled */
.pure-material-textfield-outlined > input:disabled,
.pure-material-textfield-outlined > input:disabled + span,
.pure-material-textfield-outlined > textarea:disabled,
.pure-material-textfield-outlined > textarea:disabled + span {
    border-color: rgba(
        var(--pure-material-onsurface-rgb, 0, 0, 0),
        0.38
    ) !important;
    border-top-color: transparent !important;
    color: rgba(var(--pure-material-onsurface-rgb, 0, 0, 0), 0.38);
    pointer-events: none;
}

.pure-material-textfield-outlined > input:disabled + span::before,
.pure-material-textfield-outlined > input:disabled + span::after,
.pure-material-textfield-outlined > textarea:disabled + span::before,
.pure-material-textfield-outlined > textarea:disabled + span::after {
    border-top-color: rgba(
        var(--pure-material-onsurface-rgb, 0, 0, 0),
        0.38
    ) !important;
}

.pure-material-textfield-outlined > input:disabled:placeholder-shown,
.pure-material-textfield-outlined > input:disabled:placeholder-shown + span,
.pure-material-textfield-outlined > textarea:disabled:placeholder-shown,
.pure-material-textfield-outlined > textarea:disabled:placeholder-shown + span {
    border-top-color: rgba(
        var(--pure-material-onsurface-rgb, 0, 0, 0),
        0.38
    ) !important;
}

.pure-material-textfield-outlined
    > input:disabled:placeholder-shown
    + span::before,
.pure-material-textfield-outlined
    > input:disabled:placeholder-shown
    + span::after,
.pure-material-textfield-outlined
    > textarea:disabled:placeholder-shown
    + span::before,
.pure-material-textfield-outlined
    > textarea:disabled:placeholder-shown
    + span::after {
    border-top-color: transparent !important;
}

/* Faster transition in Safari for less noticable fractional font-size issue */
@media not all and (min-resolution: 0.001dpcm) {
    @supports (-webkit-appearance: none) {
        .pure-material-textfield-outlined > input,
        .pure-material-textfield-outlined > input + span,
        .pure-material-textfield-outlined > textarea,
        .pure-material-textfield-outlined > textarea + span,
        .pure-material-textfield-outlined > input + span::before,
        .pure-material-textfield-outlined > input + span::after,
        .pure-material-textfield-outlined > textarea + span::before,
        .pure-material-textfield-outlined > textarea + span::after {
            transition-duration: 0.1s;
        }
    }
}

/* ------------------------------------------------------------------------------------------------------ */

.loader {
    width: 48px;
    height: 48px;
    border: 3px solid #333;
    border-radius: 50%;
    display: inline-block;
    position: relative;
    box-sizing: border-box;
    animation: rotation 1s linear infinite;
}
.loader::after {
    content: "";
    box-sizing: border-box;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 3px solid;
    border-color: #6366f1 transparent;
}

@keyframes rotation {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.hide-scrollbar::-webkit-scrollbar {
    display: none; /* 对于 Chrome, Safari 和 Opera */
}

.hide-scrollbar {
    -ms-overflow-style: none; /* 对于 IE 和 Edge */
    scrollbar-width: none; /* 对于 Firefox */
}

/* ------------------------------------------------------------------------------------------------------ */

/* select starting stylings ------------------------------*/
.select {
    position: relative;
    width: 100%;
}

.select-text {
    position: relative;
    font-family: inherit;
    background-color: transparent;
    width: 100%;
    padding: 6px 3px 6px 10px;
    border: solid 1px; /* Safari */
    border-color: #333;
    border-radius: 4px;
}

.select-text:focus {
    outline: none;
    border-color: #2f80ed;
}

/* Use custom arrow */
.select .select-text {
    appearance: none;
    -webkit-appearance: none;
}

.select:after {
    position: absolute;
    top: 18px;
    right: 10px;
    /* Styling the down arrow */
    width: 0;
    height: 0;
    padding: 0;
    content: "";
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid rgba(0, 0, 0, 0.12);
    pointer-events: none;
}

.filter.select:after {
    top: 22px;
}

/* LABEL ======================================= */
.select-label {
    color: rgba(0, 0, 0, 0.26);
    font-size: 12px;
    font-weight: normal;
    position: absolute;
    pointer-events: none;
    left: 0;
    top: 10px;
    transition: 0.2s ease all;
}

/* active state */
.select-text:focus ~ .select-label,
.select-text:valid ~ .select-label {
    color: #2f80ed;
    top: -20px;
    transition: 0.2s ease all;
    font-size: 14px;
}

/* BOTTOM BARS ================================= */
.select-bar {
    position: relative;
    display: block;
    width: 350px;
}

.select-bar:before,
.select-bar:after {
    content: "";
    height: 2px;
    width: 0;
    bottom: 1px;
    position: absolute;
    background: #2f80ed;
    transition: 0.2s ease all;
}

.select-bar:before {
    left: 50%;
}

.select-bar:after {
    right: 50%;
}

/* active state */
.select-text:focus ~ .select-bar:before,
.select-text:focus ~ .select-bar:after {
    width: 50%;
}

/* HIGHLIGHTER ================================== */
.select-highlight {
    position: absolute;
    height: 60%;
    width: 100px;
    top: 25%;
    left: 0;
    pointer-events: none;
    opacity: 0.5;
}
/* ------------------------------------------------------------------------------------------------------ */
