/* REM — variable font, covers weight 100-900 */
@font-face {
    font-family: REM;
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('@/assets/fonts/rem-latin-normal.woff2') format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308,
        U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: REM;
    font-style: italic;
    font-weight: 100 900;
    font-display: swap;
    src: url('@/assets/fonts/rem-latin-italic.woff2') format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308,
        U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Barlow — latin subset, regular 400 */
@font-face {
    font-family: Barlow;
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('@/assets/fonts/barlow-latin-normal.woff2') format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308,
        U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

*,
::before,
::after {
    box-sizing: border-box;
    border-color: currentcolor;
    border-style: solid;
    border-width: 0;
}

html {
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    line-height: 1.5;
    tab-size: 4;
    text-size-adjust: 100%;
    background-color: black;
}

body {
    width: 100%;
    height: 100%;
    margin: 0;
    font-family:
        'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei',
        '微软雅黑', Arial, sans-serif;
    line-height: inherit;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizelegibility;
}

#root {
    width: 100%;
    height: 100%;
    overflow: hidden auto;
}

hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
}

abbr:where([title]) {
    text-decoration: underline dotted;
}

a {
    color: inherit;
    text-decoration: inherit;
}

b,
strong {
    font-weight: bolder;
}

code,
kbd,
samp,
pre {
    font-family:
        ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
        monospace;
    font-size: 1em;
}

small {
    font-size: 80%;
}

sub,
sup {
    position: relative;
    font-size: 75%;
    line-height: 0;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

table {
    text-indent: 0;
    border-collapse: collapse;
    border-color: inherit;
}

button,
input,
optgroup,
select,
textarea {
    padding: 0;
    margin: 0;
    font-family: inherit;
    font-size: 100%;
    line-height: inherit;
    color: inherit;
}

button,
select {
    text-transform: none;
}

button,
[type='button'],
[type='reset'],
[type='submit'] {
    background-image: none;
}

:-moz-focusring {
    outline: auto;
}

:-moz-ui-invalid {
    box-shadow: none;
}

progress {
    vertical-align: baseline;
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
    height: auto;
}

[type='search'] {
    outline-offset: -2px;
}

::-webkit-file-upload-button {
    font: inherit;
}

summary {
    display: list-item;
}

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
    margin: 0;
}

fieldset {
    padding: 0;
    margin: 0;
}

legend {
    padding: 0;
}

ol,
ul,
menu {
    padding: 0;
    margin: 0;
    list-style: none;
}

textarea {
    resize: vertical;
}

input::placeholder,
textarea::placeholder {
    color: #9ca3af;
    opacity: 1;
}

button,
[role='button'] {
    cursor: pointer;
}

:disabled {
    cursor: default;
}

svg,
video,
canvas,
audio,
iframe,
embed,
object {
    display: block;
}

img,
video {
    max-width: 100%;
    height: auto;
}

[hidden] {
    display: none;
}

.dark {
    color-scheme: dark;
}

label {
    font-weight: 700;
}

*,
*::before,
*::after {
    box-sizing: inherit;
}

a:focus,
a:active {
    outline: none;
}

a,
a:focus,
a:hover {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

div:focus {
    outline: none;
}

.clearfix {
    &::after {
        display: block;
        height: 0;
        clear: both;
        font-size: 0;
        visibility: hidden;
        content: ' ';
    }
}

// RTL 支持
[dir='rtl'] {
    // 文本对齐
    text-align: right;

    // left-[xpx] 转换为 right-[xpx]
    [class*='left-['] {
        @for $i from 0 through 100 {
            &.left-\[#{$i}px\] {
                left: unset;
                right: #{$i}px;
            }
        }
    }

    // right-[xpx] 转换为 left-[xpx]
    [class*='right-['] {
        @for $i from 0 through 100 {
            &.right-\[#{$i}px\] {
                right: unset;
                left: #{$i}px;
            }
        }
    }

    // 边距和填充
    .ml-auto {
        margin-left: unset;
        margin-right: auto;
    }

    .mr-auto {
        margin-right: unset;
        margin-left: auto;
    }

    // 浮动
    .float-right {
        float: left;
    }

    .float-left {
        float: right;
    }

    // 边框
    .border-l {
        border-left: none;
        border-right: 1px solid;
    }

    .border-r {
        border-right: none;
        border-left: 1px solid;
    }

    // 圆角
    .rounded-l {
        border-radius: 0 0.375rem 0.375rem 0;
    }

    .rounded-r {
        border-radius: 0.375rem 0 0 0.375rem;
    }

    // 图标
    .icon {
        transform: scaleX(-1);
    }

    // 列表
    ul,
    ol {
        padding-right: 1.5em;
        padding-left: 0;
    }

    // 表格
    table {
        direction: rtl;
    }

    th,
    td {
        text-align: right;
    }

    // 输入框
    input,
    textarea {
        text-align: right;
    }

    // 下拉菜单
    .ant-select-dropdown {
        direction: rtl;
    }

    // 模态框
    .ant-modal {
        direction: rtl;
    }

    // 抽屉
    .ant-drawer {
        direction: rtl;
    }

    // 消息提示
    .ant-message {
        direction: rtl;
    }

    // 通知提醒
    .ant-notification {
        direction: rtl;
    }
}
