/* Form */ input { filter: none; } li>form { display: block; } form>div:not(.clear):not(.control) { min-height: 9rem; position: relative; box-sizing: border-box; } form>div.compact:not(.clear):not(.control) { min-height: 0; } form>div label { position: absolute; top: 1.5rem; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; max-width: calc(100% - 3rem); user-select: none; } form>div textarea[required]+label:after, form>div input[required]:not([type=checkbox])+label:after { content: '✱'; margin-left: 0.5rem; } form>div.icon { padding-left: 9rem; } form>div textarea { field-sizing: content; border: none; resize: none; line-height: 3rem; box-sizing: border-box; } form>div .select:has(option:nth-child(2)):after { font-family: 'Material Symbols'; content: "\e5c5"; display: block; font-size: 4rem; color: rgba(var(--movim-font), 0.75); position: absolute; bottom: 0rem; pointer-events: none; inset-inline-end: 0; } form>div .select:hover:after { color: rgba(var(--movim-font), 0.6); } form>div .select select { -webkit-appearance: none; -moz-appearance: none; appearance: none; width: 100%; background-color: transparent; background-image: none; padding-bottom: 1rem; mask-image: linear-gradient(to right, black calc(100% - 15rem), transparent); } *[dir="rtl"] form>div .select select { mask-image: linear-gradient(to left, black calc(100% - 15rem), transparent); } form>div .select:not(:has(option:nth-child(2))) { pointer-events: none; } /* Placeholders to mimic FF */ input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus, input:-webkit-autofill:active { transition: background-color 0s 50000s; -webkit-text-fill-color: rgba(var(--movim-font), 0.87) !important; } /* Webkit weird CSS, sic */ form>div .select select, form>div input:not([type=submit]), form>div textarea { outline-width: 0; } form>div .select select option, form>div .select select optgroup { background-color: rgb(var(--movim-background-main)); } form>div .select, form>div input:not([type=submit]), form>div textarea { display: block; padding: 1rem 0; padding-top: 4rem; width: 100%; background-color: transparent; margin-bottom: 1rem; -webkit-appearance: none; /* iOS */ border-radius: 0; /* iOS */ overflow: hidden; /* Fixme */ position: relative; z-index: 1; } form>div .select, form>div input:not([type=submit]), form>div textarea { box-shadow: 0px 1px 0px rgba(var(--movim-font), 0.12); } form>div>img, form>div>p { padding-top: 1.5rem; } form>div .select { position: relative; padding-top: 4rem; padding-bottom: 0; } form>div.compact>.select, form>div.compact>input:not([type=submit]), form>div.compact>textarea { padding-top: 2.5rem; } /* Supporting text */ ul.list li div span.supporting, form div>span.supporting { line-height: 2.25rem; font-size: 1.5rem; color: rgba(var(--movim-font), 0.60); display: inline-block; margin-bottom: 1rem; } /* Webkit hack */ form>div input:not([type=submit]):-webkit-autofill { -webkit-box-shadow: 0 0 0 50px transparent inset; } form>div input:not([type=submit]):-webkit-autofill:focus { box-shadow: none; -webkit-text-fill-color: rgba(var(--movim-font), 0.87); } /* File */ input[type=file] { max-width: 100%; margin-top: 1rem; } /* Checkbox element */ form>div .checkbox>input[type="checkbox"], form>div .radio>input[type="radio"] { display: inline; width: 0; height: 0; position: initial; } form>div .checkbox { position: relative; width: 6rem; height: 4rem; margin-top: calc(50% - 2rem); direction: ltr; left: -1rem; } form>div ul.list .control .checkbox { left: 0; } form>div .checkbox>input[type="checkbox"]:before { content: ''; display: block; position: absolute; height: 100%; width: 100%; border: 0.3rem solid rgba(var(--movim-font), 0.2); background-color: rgba(var(--movim-font), 0.12); box-sizing: border-box; transition: background-color 0.3s ease; top: 0; } form>div .checkbox>input[type="checkbox"]:before { border-radius: 4rem; } form>div .checkbox>input[type="checkbox"]:focus:before { outline: 3px solid var(--movim-accent); outline-offset: 2px; } form>div .checkbox>input[type="checkbox"]+label { z-index: 1; display: block; background-color: rgba(var(--movim-font), 0.2); width: 2rem; height: 2rem; border-radius: 2rem; top: 1rem; left: 1rem; position: absolute; font-size: 2rem; text-align: center; line-height: normal; transition: left 0.3s ease, top 0.2s ease, width 0.2s ease, height 0.2s ease, box-shadow 0.1s ease; } form>div .checkbox>input[type="checkbox"]+label i { vertical-align: middle; color: rgba(var(--movim-font), 0.5); line-height: 1.75em; font-size: 1.75rem; } form>div .checkbox:hover>input[type="checkbox"]+label { cursor: pointer; box-shadow: 0 0 0 1.75rem rgba(var(--movim-font), 0.05); } form>div .checkbox>input[type="checkbox"]:checked+label { color: white; width: 3rem; height: 3rem; left: 1.25em; top: 0.25em; background-color: white; } form>div .checkbox>input[type="checkbox"]:checked+label i { color: var(--movim-accent); } /* Radio */ form>div .radio>input[type="radio"]+label { display: inline-block; width: 2rem; height: 2rem; border-radius: 2rem; border-width: 2px; border-style: solid; border-color: gray; transition: box-shadow 0.1s ease; margin: 1.25rem; margin-bottom: 0; } form>div .radio>input[type="radio"]:focus+label { outline: 3px solid var(--movim-accent); outline-offset: 2px; } form>div .radio>input[type="radio"]+label:hover { cursor: pointer; background-color: rgba(var(--movim-font), 0.1); box-shadow: 0 0 0 1.5rem rgba(var(--movim-font), 0.1); } form>div .radio>input[type="radio"]:checked+label { box-shadow: inset 0 0 0 0.4rem rgb(var(--movim-background-main)); } form>div .radio>input[type="radio"]:checked+label:hover { box-shadow: inset 0 0 0rem 0.4rem rgb(var(--movim-background-main)), 0 0 0 1.55rem rgba(var(--movim-font), 0.05); } /* Disabled */ form>div input:disabled, form>div input:disabled+label, form>div select:disabled, form>div select:disabled+label, form>div textarea:disabled, form>div textarea:disabled+label { opacity: 0.5; } /* Readonly */ form>div input[readonly], form>div textarea[readonly] { opacity: 0.75; } /* Button */ .button.oppose { float: inline-end; } .button:disabled, .button.inactive { opacity: 0.6; pointer-events: none; } .button:focus-visible { outline: 3px solid var(--movim-accent); outline-offset: 2px; } .button, input[type=button] { -webkit-appearance: none; /* iOS */ min-width: 5rem; text-align: center; display: inline-block; box-sizing: border-box; font-size: 2rem; font-weight: 500; line-height: 5rem; height: 5rem; margin: 0.75rem 0.25rem; border-radius: 3rem; padding: 0 2rem; border: 0; transition: background 0.3s ease, box-shadow 0.3s ease, border-radius 0.2s var(--standard-easing), filter 0.2s var(--standard-easing); background-image: none; user-select: none; } .button.color { box-shadow: var(--elevation-1); } .button.color:hover { box-shadow: var(--elevation-2); } p>.button, p>input[type=button] { margin: 0.75rem 0; } .button.narrow { padding: 0 1rem; } .button:not(.color), input[type=button]:not(.color) { background-color: white; } .button:active, input[type=button]:active { filter: saturate(0.8) brightness(0.9); box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.23), 0 0.5rem 1.25rem rgba(0, 0, 0, 0.16); } .button.flat, input[type=button].flat { box-shadow: none; background-color: transparent; border: 0; } .button:hover, a.button:link:hover, a.button:visited:hover, input[type=button]:hover { cursor: pointer; text-decoration: none; border-radius: 1rem; } .button.flat:not(.color):hover, .button.flat:not(.color).on, input[type=button].flat:not(.color):hover { background-color: rgba(var(--movim-element-action), 0.2); } .button:focus, input[type=button]:focus { border: 0; } .button.flat:not(.color):focus, input[type=button].flat:not(.color):focus { background-color: rgba(var(--movim-element-action), 0.4); font-variation-settings: 'FILL' 1; } .button.action { position: fixed; bottom: 2rem; right: 2rem; min-height: 0rem; min-width: 0rem; line-height: 7rem; height: 7rem; width: 7rem; z-index: 2; font-size: 3.5rem; animation: zoom 0.3s; padding: 0; border-radius: 2.5rem; margin: 0; } .button.action.small { height: 5rem; width: 5rem; line-height: 5rem; } body>nav.active~main .button.action, body>div.dialog:not(:empty)~main .button.action, body>div.drawer:not(:empty):not(.empty)~main .button.action { transform: scale(0.9); opacity: 0; } .button.action { box-shadow: var(--elevation-3); } .button.action:hover { box-shadow: var(--elevation-4); } .button.action, .button.action>i { transition: all 0.4s ease 0s; } .button.action.active>i { transform: rotate(45deg); } ul.list li div>.button { margin: 0.25rem; } li.action div.action .button { margin: 0.5rem; display: block; } .button:not(.action) i { font-size: 2.5rem; margin: 0 0.25rem; } .snackbar#status_websocket:not(.hide)~main>section#sidebar~* .button.action { display: none; } @media screen and (min-width: 1025px) { main>div:first-child:nth-last-child(2)+div .button.action { right: calc(75% - 3rem); } *[dir="rtl"] main>div:first-child:nth-last-child(2)+div .button.action { right: auto; left: calc(75% - 3rem); } section#sidebar~* .button.action { right: calc(50% - 21rem); } *[dir="rtl"] section#sidebar~* .button.action { right: auto; left: calc(50% - 21rem); } } @media screen and (min-width: 1680px) { main>div:first-child:nth-last-child(2)+div .button.action { right: calc(63.75% + 2rem); } section#sidebar~* .button.action { right: calc(42.5% - 17rem); } }