/***
    The new CSS reset - version 1.8.5 (last updated 14.6.2023)
    GitHub page: https://github.com/elad2412/the-new-css-reset
***/

/*
    Remove all the styles of the "User-Agent-Stylesheet", except for the 'display' property
    - The "symbol *" part is to solve Firefox SVG sprite bug
    - The "html" attribute is exclud, because otherwise a bug in Chrome breaks the CSS hyphens property (https://github.com/elad2412/the-new-css-reset/issues/36)
*/
*:where(:not(html, iframe, canvas, img, svg, video, audio):not(svg *, symbol *)) {
    all: unset;
    display: revert;
}

/* Preferred box-sizing value */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* Reapply the pointer cursor for anchor tags */
a, button {
    cursor: revert;
}

/* Remove list styles (bullets/numbers) */
ol, ul, menu {
    list-style: none;
}

/* For images to not be able to exceed their container */
img {
    max-inline-size: 100%;
    max-block-size: 100%;
}

/* removes spacing between cells in tables */
table {
    border-collapse: collapse;
}

/* Safari - solving issue when using user-select:none on the <body> text input doesn't working */
input, textarea {
    -webkit-user-select: auto;
}

/* revert the 'white-space' property for textarea elements on Safari */
textarea {
    white-space: revert;
}

/* minimum style to allow to style meter element */
meter {
    -webkit-appearance: revert;
    appearance: revert;
}

/* preformatted text - use only for this feature */
:where(pre) {
    all: revert;
}

/* reset default text opacity of input placeholder */
::placeholder {
    color: unset;
}

/* remove default dot (•) sign */
::marker {
    content: initial;
}

/* fix the feature of 'hidden' attribute.
display:revert; revert to element instead of attribute */
:where([hidden]) {
    display: none;
}

/* revert for bug in Chromium browsers
- fix for the content editable attribute will work properly.
- webkit-user-select: auto; added for Safari in case of using user-select:none on wrapper element */
:where([contenteditable]:not([contenteditable="false"])) {
    -moz-user-modify: read-write;
    -webkit-user-modify: read-write;
    overflow-wrap: break-word;
    -webkit-line-break: after-white-space;
    -webkit-user-select: auto;
}

/* apply back the draggable feature - exist only in Chromium and Safari */
:where([draggable="true"]) {
    -webkit-user-drag: element;
}

/* Revert Modal native behavior */
:where(dialog:modal) {
    all: revert;
}

/***

    G L O B A L   S T Y L E   D E F I N I T I O N S
    ----------------------------------------------------------------------------

    Here we define all styles that should always be applied to certain standard
    browser elements like text, headings or form controls.

***/

::selection {
    background-color: var(--color-primary);
    color: #FFFFFF;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 15px;
    color: #333333;
    user-select: none;
    cursor: default;
}

h1 {
    font-size: 1.75rem;
}

h2 {
    font-size: 1.5rem;
}

h3 {
    font-size: 1.25rem;
}

strong {
    font-weight: bold;
}

em {
    font-style: italic;
}

a {
    color: var(--color-primary);
    cursor: pointer;
}

a.btn, button {
    display: inline-flex;
    height: 2rem;
    border: 1px #E0E0E0 solid;
    background-color: #FFFFFF;
    color: #333333;
    box-shadow: 0 0.1rem 0.3rem rgba(#000000, 0.1);
    align-items: center;
    justify-content: center;
    padding: 0 1rem;
    border-radius: 0.25rem;
    cursor: pointer;
    user-select: none;
}

a.btn.primary, button.primary {
    box-shadow: 0 0.1rem 0.3rem rgba(var(--color-rgb-primary), 0.5);
    background-color: var(--color-primary);
    border: none;
    color: #FFFFFF;
}

a.btn:hover, button:hover {
    opacity: 0.9;
}

a.btn:active, button:active {
    filter: brightness(0.93);
}

input[type='text'], input[type='password'] {
    height: 2rem;
    padding: 0 0.75rem;
    border-radius: 0.25rem;
    border: 1px #E0E0E0 solid;
}

input[type='text']::placeholder, input[type='password']::placeholder {
    color: #AAAAAA;
}

input[type='text']:focus, input[type='password']:focus {
    border: 1px var(--color-accent) solid;
    outline: 3px rgba(var(--color-rgb-accent), 0.1) solid;
}

input[type='text']::selection, input[type='password']::selection {
    background-color: rgba(var(--color-rgb-accent), 0.1);
    color: var(--color-accent);
}

input[type='checkbox'] {
    accent-color: var(--color-primary);
}
