*{box-sizing: border-box;font-family: 'Roboto', sans-serif;} :root { --white: #ffffff; --grey: #dbdcde; --light-grey: #fafafa; --main: #fca311; --sec: #14213d; --black: #000000; --red: 212, 38, 38; --green: 92, 199, 30; } body { margin: 0; padding: 0; } main { padding: 20px 15vw; } .flex { display: flex; } .justify-center { justify-content: center; } .justify-start { justify-content: start; } .justify-end { justify-content: end; } .align-center { align-items: center; } .grow-1 { flex-grow: 1; } .w100 { width: 100%; display: block; } .text-center { text-align: center; } .simple-link { color: var(--sec); text-decoration: none; } .bold { font-weight: bold; } .bigger { font-size: 1.1rem; } .danger { color: red; } /* Generic */ .button, button { border-radius: 10px; text-align: center; padding: 3px 6px; border: none; box-shadow: 0 2px 8px 1px #66666655; background: var(--main); color: var(--black); } .button.padded, button.padded { padding: 10px; } .button.danger, button.danger { background: rgb(var(--red)); color: white; font-weight: bold; } /* Nav bar */ nav { background: #ececec; margin: 0; box-shadow: 0 0 8px 1px #888888ef; height: 60px; } nav ul { display: flex; margin: 0; padding: 20px 40px; } nav ul li { list-style: none; padding-left: 10px; } nav ul li:first-child { padding: 0; } nav ul .expand { flex-grow: 1 } nav ul li a { text-decoration: none; color: black; } /* 404 page */ .page404 { display: grid; place-items: center; height: calc(100vh - 60px); text-align: center; } .page404 h1 { font-size: 10em; margin: 0; } .page404 h2 { font-size: 5em; margin: 0; margin-bottom: 0.3em; } .page404 div.description { font-size: 1.5em; } /* Login Page */ .login-page { display: grid; place-items: center; margin-bottom: 40px; } .login-page > div { width: 40vw; } .login-page h1 { text-align: center; } /* forms */ a { cursor: pointer; } form { padding: 30px; margin: 20px 0; border-radius: 10px; box-shadow: 2px 5px 8px 2px #66666655; } .card form { padding: 0; border-radius: none; box-shadow: none; } form label, form fieldset legend { display: block; padding-bottom: 5px; font-size: 1.2rem; } form input { border: none; box-shadow: 0 2px 5px 1px #66666655; border-radius: 5px; padding: 10px; width: 100%; } form input:invalid:focus, form.submitted input:invalid { box-shadow: 0 2px 5px 1px rgba(var(--red), 0.2); } form.submitted input:valid { box-shadow: 0 2px 5px 1px rgba(var(--green), 0.2); } form .spacer { padding-bottom: 10px; } form fieldset { padding-bottom: 15px; border: none; } form fieldset .form-msg { font-size: 0.9rem; } form fieldset .error { color: rgb(var(--red)) } form button { font-size: 1.2rem; margin-left: 50%; width: 50%; transform: translateX(-50%); padding: 10px; } form .input-radial input[type="radio"] { width: auto; box-shadow: none; } form .input-radial label { display: inline; font-size: 1rem; } /* Upload files */ form fieldset.file-upload input[type="file"] { height: 1px; width: 1px; padding: 0; box-shadow: none; } form fieldset.file-upload .icon-holder { padding: 10px; display: flex; flex-direction: column; align-items: center; width: 100%; font-size: 1rem; } form fieldset.file-upload .icon-holder .icon { height: 150px; width: 150px; padding: 20px; border-radius: 10px; background: none; transform: none; margin: 0; font-size: 1rem; transition: all 1s; } form fieldset.file-upload .icon-holder .icon.adapt { width: auto; height: auto; max-width: 80%; max-height: 80%; min-height: 150px; min-width: 150px; padding: 20px; } form fieldset.file-upload:has(input[type="file"]:invalid:focus) .icon, form.submitted fieldset.file-upload:has(input[type="file"]:invalid:focus) .icon { box-shadow: 0 2px 5px 1px rgba(var(--red), 0.2); } form.submitted fieldset.file-upload:has(input[type="file"]:valid:focus) .icon{ box-shadow: 0 2px 5px 1px rgba(var(--green), 0.2); } form fieldset.file-upload .icon-holder .icon img { display: block; width: 100%; height: 80%; object-fit: contain; text-align: center; transition: all 1s; } form fieldset.file-upload .icon-holder .icon span { display: block; width: 100%; padding-top: 10px; text-align: center; } /* Lists */ .list-header { display: flex; padding-bottom: 10px; } .list-header h2 { margin: 0; padding: 10px 5px; } .list-header .expand { flex-grow: 1; } .list-header .button, .list-header button { padding: 10px 10px; height: calc(100% - 20px); margin-top: 5px; } /* Table */ table { width: 100%; box-shadow: 0 2px 8px 1px #66666622; border-radius: 10px; border-collapse: collapse; overflow: hidden; } table thead { background: #60606022; } table tr td, table tr th { border-left: 1px solid #22222244; padding: 15px; } table tr td:first-child, table tr th:first-child { border-left: none; } table tr td button, table tr td .button { padding: 5px 10px; box-shadow: 0 2px 5px 1px #66666655; } .card { box-shadow: 0 2px 5px 1px #66666655; padding: 20px; border-radius: 10px; margin: 20px 0; } .card h3 { margin-top: 0; } /* Model stuff */ .model-card h1 { margin: 0; padding-bottom: 10px; } .model-card img { width: 25%; height: 100%; object-fit: contain; } .model-card .second-line { display: flex; gap: 20px; } /* Tabs code */ .tabs { border-radius: 5px; overflow: hidden; display: flex; flex-wrap: wrap; box-shadow: 0 2px 8px 1px #66666655; gap: 0 5px; } .tabs-header .header { display: flex; overflow-x: scroll; } .tabs .content { display: none; padding: 5px; width: 100%; } .tabs .tab { padding: 5px; background: var(--light-grey); border-radius: 5px 5px 0 0; box-shadow: none; font-size: 1.1rem; } .tabs .tab.selected { box-shadow: inset 0 2px 8px 1px #66666655; } .tabs .content.selected { display: block; box-shadow: 0 2px 2px 1px #66666655; }