@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Tajawal:wght@200;300;400;500;700;800;900&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap'); :root { --main: #202128; --secondary: #1c1d24; --main-light: #30313a; --secondary-light: #22242a; --dark: #1b1c1f; --layout: #111111; --highlight: #3e3f4b; --text: #807f7f; --text-dark: #5d5d5d; --light: #9e9e9e; --contrast: #0e4ef0; --shadow: rgba(0, 0, 0, 0.6); } #app { display: flex; width: 100%; height: 100vh; justify-content: center; align-items: center; user-select: none; } .container { width: 80%; height: 80%; background-color: var(--main); border-radius: 20px; box-shadow: 0px 0px 10px 0px var(--shadow); padding: 1.5rem 1rem; display: grid; grid-template-columns: 0.17fr 1fr; } aside { display: grid; grid-template-rows: 0.15fr 1fr 0.1fr; border-right: 1px solid var(--highlight); } h1, h2, p { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* Logo */ aside .logo { display: flex; flex-direction: column; align-items: center; } aside .logo::after { content: ''; display: block; margin: 0 auto; width: 85%; border-bottom: 1px solid var(--highlight); } aside .logo img { width: 70%; } /* Links */ .links { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; margin-block: 1rem; margin-inline: .5rem; } .links:last-child { justify-content: center; } .link { display: grid; grid-template-columns: .3fr 1fr; align-items: center; width: 9vw; height: 3.0rem; color: var(--text); transition: all 0.3s; } .link i { font-size: 1.3rem; } .link small { font-family: 'Tajawal', sans-serif; font-weight: 700; font-size: auto; } .link i, .link small { cursor: pointer; transition: all 0.3s; } .link.active { color: var(--contrast); } .link:hover:not(.active) { transform: scale(0.95); } /* Pages & Layout */ .flex { display: flex; } .flex-inline { align-items: center; gap: 0.5rem; } .page-wrapper { padding-inline: 1.5rem; display: grid; grid-template-rows: 0.1fr 1fr; } .page-header { font-family: 'Montserrat', sans-serif; color: var(--light); padding: 0.5rem; border-bottom: 1px solid var(--highlight); } .page-header h1 { font-weight: 700; font-size: 2.5vh; } .page-header p { font-weight: 400; font-size: 1.5vh; padding: 0.25rem 0.25rem 0.25rem 0.1rem; } .page-content { display: flex; gap: 1.5rem; padding: 1rem 0.5rem; overflow: scroll; scrollbar-width: none; } .page-content-header > div, .page-content > div { flex-grow: 1; flex-basis: 0; } .page-content::-webkit-scrollbar { display: none; } .page-content-header { display: flex; gap: .5rem; } .form-footer { margin-block: .5rem; display: flex; justify-content: center; align-items: center; } /* Grids */ .simetric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); } .simetric-full-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: minmax(8.5vh, max-content); overflow-y: scroll !important; padding-right: .5vw; } #searchGrid { display: grid; grid-template-rows: .17fr 1fr; } #fullGrid { display: grid; grid-template-rows: 1fr; } #profileGrid { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(5, 1fr); gap: .5vw; } #profileGrid > div { background-color: var(--secondary); box-shadow: 0 0 2px var(--dark); border-radius: 5px; } #profileGrid > .header { display: grid; grid-template-columns: .2fr 1fr; grid-column: span 3; align-items: center; gap: .5vw; padding-inline: 1vw; } #profileGrid .resultNotFound { margin-top: 3vh; } .profile-image { display: flex; justify-content: center; align-items: center; transition: all .5s; cursor: pointer; } .profile-image p { opacity: 0; position: absolute; transition: all .5s; font-family: 'Montserrat', sans-serif; font-size: 15px; font-weight: 700; color: var(--dark); } .profile-image > img { width: 70%; border-radius: 50%; border: 2px solid var(--main-light); } .profile-image:hover { filter: brightness(0.5); } .profile-image:hover p { opacity: 1; } .profile-name { font-family: 'Montserrat', sans-serif; color: var(--text); } .profile-name > h1 { font-size: 2.5vh; font-weight: 800; margin-bottom: .5vh; } #profileGrid > .nav { grid-row: span 5; padding-inline: 1vw; padding-block: 2vh; } h1 { font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 17px; color: var(--text); } hr { border-radius: 5px; border-bottom: .5px solid var(--dark); } .list { display: flex; flex-direction: column; gap: .2vh; margin-block: 1.5vh; } .list .item { background-color: var(--secondary-light); border: 1px solid var(--dark); border-radius: 5px; height: 3.5vh; display: flex; gap: .5vw; padding-inline: 1vw; align-items: center; cursor: pointer; } .list .item > i { font-size: 17px; color: var(--text); } .list .item > h1 { font-size: 15px; font-weight: 600; color: var(--text); } #profileGrid > .details { display: grid; grid-template-rows: 1fr 1fr; grid-row: span 4; grid-column: span 3; padding-block: 1vh; padding-inline: 2vw; } .details .top { display: grid; grid-template-columns: 1fr 1fr; gap: 2vw; padding-block: 1vh; } .details .top p { font-family: 'Montserrat', sans-serif; font-weight: 500; font-size: 13px; color: var(--text); margin-bottom: 3px; } .details .top p b { color: var(--light); font-weight: 800; } /* Scrollbar */ .scroll-x-hidden { overflow-x: scroll !important; scrollbar-width: none; } .scroll-y-hidden { overflow-y: scroll !important; scrollbar-width: none; } ::-webkit-scrollbar { width: 3px; border-radius: 10px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: var(--dark); } ::-webkit-scrollbar-corner { display: none; } /* Dashboard */ #dashboard .page-content { display: grid; grid-template-rows: 20% 1fr; margin: 1vw; } #dashboard .page-content .dashboardSection { padding-block: 1.5vh; gap: 1vw; color: var(--text-dark); font-family: 'Montserrat', sans-serif; } #dashboard .page-content .dashboardSection:not(:last-child) { border-bottom: 1px solid var(--main-light); } #dashboard .dashboardInfo { background-color: var(--dark); border-radius: 10px; box-shadow: 0 0 2px var(--shadow); padding: 1.5vh; padding-inline: 2vw; display: flex; align-items: center; gap: 1rem; } #dashboard .dashboardInfo i { font-size: 4.5vh; } #dashboard .dashboardInfo div:last-child { display: flex; flex-direction: column; gap: .2vw; } #dashboard .dashboardInfo div:last-child h1 { font-size: 2vh; font-weight: 800; } #dashboard .dashboardInfo div:last-child h2 { font-size: 1.5vh; font-weight: 600; } /* Incidents / Evidences */ #incidents .createIncidents { overflow: scroll !important; scrollbar-width: none; } .content-header { box-sizing: border-box; display: flex; flex-direction: column; gap: 1vh; font-size: 20px; color: var(--text); font-weight: 600; font-family: 'Montserrat', sans-serif; margin-inline: 0.5vw; margin-block: 1vh; } .searchResults { transition: all .5s; display: grid; grid-auto-rows: 3rem; gap: .5rem; margin-inline: .5rem; overflow-y: scroll !important; scrollbar-width: none; padding-inline: 5px; } .searchResults div { box-sizing: border-box; cursor: pointer; border-radius: 8px; background-color: var(--dark); color: var(--text); font-weight: 500; font-family: 'Montserrat', sans-serif; display: flex; justify-content: space-between; align-items: center; padding: 0 1rem 0 1rem; } .searchResults div .icon { display: flex; align-items: center; gap: 1rem; } .searchResults div .icon i { font-size: 20px; } .searchResults div p { font-size: 13px; } .resultNotFound { display: flex; justify-content: center; align-items: center; flex-direction: column; font-family: 'Tajawal', sans-serif; color: var(--highlight); text-align: center; gap: 2vh; } .resultNotFound i { font-size: 12vh; } .resultNotFound h1 { margin-top: .5vh; font-weight: 600; font-size: 2.5vh; } #incident .incidentSection, #incident .incident-header, #evidence .evidenceSection, #evidence .evidence-header { padding-block: .5rem; } #incident .incidentSection, #evidence .evidenceSection { text-align: center; } #incident .page-content, #evidence .page-content { display: grid; grid-template-rows: 0.2fr 1fr; gap: 1rem; } #incident .page-content, #evidence .page-content { color: var(--text); font-weight: 600; font-family: 'Montserrat', sans-serif; } #incident .page-content .incidentDetails { margin-left: .5vw; } #incident .page-content .incidentDetails h1 { font-size: 25px; margin-bottom: .5rem; } #incident .page-content .incidentDetails p { font-weight: 400; font-size: 17px; } #incident .page-content .incidentDetails b { font-weight: 700; } #evidence .page-content .evidenceDetails { margin-left: .5vw; } #evidence .page-content .evidenceDetails h1 { font-size: 25px; margin-bottom: .5rem; } #evidence .page-content .evidenceDetails p { font-weight: 400; font-size: 17px; } #evidence .page-content .evidenceDetails b { font-weight: 700; } #incident .incidentImage { display: flex; justify-content: flex-end; } #incident .incidentImage img { width: 10vw; border-radius: 7px; } #incident .incidentSection .incidentSectionList, #evidence .evidenceSection .evidenceSectionList { display: flex; flex-direction: column; gap: .5rem; margin-top: 1rem; padding: 0.5rem; } #incident .incidentSection .incidentSectionList .incidentListItem, #evidence .evidenceSection .evidenceSectionList .evidenceListItem { cursor: pointer; display: flex; justify-content: space-between; align-items: center; height: 2.5vh; background-color: var(--dark); color: var(--text); border: 1px solid var(--main-light); border-radius: 5px; padding-inline: 1rem; font-family: 'Montserrat', sans-serif; font-weight: 500; } .incidentListItem p, .evidenceListItem p { font-size: 15px; margin-left: 3px; } .incidentListItem i, .evidenceListItem i { font-size: 13px; } /* Buttons */ .buttons { margin-inline: .5rem; display: flex; gap: 1rem; } .button { border-radius: 7px; height: 4vh; flex-grow: 1; font-size: 17px; background-color: var(--contrast); color: #fff; display: flex; justify-content: center; align-items: center; cursor: pointer; user-select: none; } .submit-button { cursor: pointer; flex-grow: 2; display: flex; align-items: center; justify-content: center; height: 3.5vh; border-radius: 5px; background-color: var(--main-light); color: var(--text); font-size: 15px; font-weight: 500; box-shadow: 0 0 5px var(--shadow); } /* Inputs */ input[type=text], textarea { width: 100%; border: 2px solid transparent; border-radius: 5px; background-color: var(--dark); color: var(--text); font-family: 'Montserrat', sans-serif; font-weight: 500; padding: 10px; transition: all 0.3s; box-sizing: border-box; resize: none; font-size: 13px; } textarea { margin-block: 1rem; height: 15vh; } input[type=text]:focus, textarea:focus { outline: 0; border-color: var(--main-light); } .autocomplete-items { transition: all .3s; position: relative; margin-bottom: 0.5rem; } .autocomplete-items div { cursor: pointer; display: flex; align-items: center; height: 25px; background-color: var(--dark); font-size: 15px; font-weight: 500; font-family: 'Montserrat', sans-serif; padding: 10px; padding-inline: 1rem; transition: all .3s; } .autocomplete-items div:last-child { border-bottom-left-radius: 7px; border-bottom-right-radius: 7px; } .autocomplete-items div:hover { background-color: var(--main-light); } .tags { display: flex; flex-wrap: wrap; width: 100%; gap: 0.5rem; margin-bottom: .5rem; } .tags li { background: var(--dark); min-width: 150px; height: 35px; padding-inline: 10px; border-radius: 5px; display: flex; align-items: center; justify-content: space-around; color: var(--text); font-size: 13px; } .tags li p, .tags li i { margin-inline: 5px; } .tags li i #removeUser { cursor: pointer; } [type=checkbox] { border: 0 !important; clip: rect(1px, 1px, 1px, 1px) !important; -webkit-clip-path: inset(50%) !important; clip-path: inset(50%) !important; height: 1px !important; overflow: hidden !important; padding: 0 !important; position: absolute !important; width: 1px !important; white-space: nowrap !important; cursor: pointer; } [type=checkbox]:active+label::before { transition-duration: 0; } [type=checkbox] + label { display: flex; align-items: center; position: relative; font-size: 15px; font-weight: 500; font-family: 'Montserrat', sans-serif; padding: 5px; user-select: none; } [type=checkbox]+label::before { background-color: var(--dark); border: 2px solid var(--main-light); box-sizing: content-box; content: ""; color: var(--text); margin-right: 4.5px; top: 50%; left: 0; width: 18px; height: 18px; display: inline-block; vertical-align: middle; } [type=checkbox]+label::after { box-sizing: content-box; content: ""; background-color: var(--dark); position: absolute; top: 50%; left: 13px; width: 8px; height: 8px; transform: scale(0); transform-origin: 50%; transition: transform 200ms ease-out; } [type=checkbox][disabled]+label::before { -webkit-animation: none; animation: none; box-shadow: none; border: 1px solid var(--main-light); } [type=checkbox][disabled]:active+label::before, [type=checkbox][disabled]:focus+label::before, [type=checkbox][disabled]:hover+label::before { border-color: var(--main-light); filter: none; } [type=checkbox]+label::before, [type=checkbox]+label::after { border-radius: 3px; } [type=checkbox]+label::after { background-color: transparent; top: 50%; left: calc( 6px + 2px + 18px/ 5); width: 9px; height: 3.6px; margin-top: calc(18px / -2 / 2 * 0.8); border-style: solid; border-color: var(--main-light); border-width: 0 0 3px 3px; border-radius: 0; -o-border-image: none; border-image: none; transform: rotate(-45deg) scale(0); } [type=checkbox]:checked+label::before { background-color: var(--contrast); border-color: var(--contrast); } [type=checkbox]:checked+label::after { color: white; border-color: white; content: ""; transform: rotate(-45deg) scale(1) translate(1px, -2px); transition: transform 120ms ease-out; margin-top: -2px; } [type=checkbox] { transition: all 120ms !important; } [type=checkbox] *::before, [type=checkbox] *::after { transition: all 120ms !important; } [type=checkbox]+label { transition: all 120ms !important; } [type=checkbox]+label *::before, [type=checkbox]+label *::after { transition: all 120ms !important; } [type=checkbox]:checked { transition: all 120ms !important; } [type=checkbox]:checked *::before, [type=checkbox]:checked *::after { transition: all 120ms !important; } [type=checkbox]:checked *::before+label, [type=checkbox]:checked *::after+label { transition: all 120ms !important; } [type=checkbox]:checked *::before+label *::before, [type=checkbox]:checked *::before+label *::after, [type=checkbox]:checked *::after+label *::before, [type=checkbox]:checked *::after+label *::after { transition: all 120ms !important; } /* Modal */ .modal-overlay { position: absolute; display: flex; align-items: center; justify-content: center; inset: 0; width: 100%; height: 100vh; z-index: 100; background-color: var(--shadow); } .modal { height: 45vh; width: 22vw; border-radius: 15px; background-color: var(--main); box-shadow: 0 0 5px var(--shadow); padding: 1rem; display: grid; grid-template-rows: 0.5fr 0.1fr 0.2fr 0.2fr; font-family: 'Montserrat', sans-serif; color: var(--text); } .modal .type { display: flex; justify-content: center; align-items: center; font-size: 15vh; color: var(--contrast); } .modal h1 { font-weight: 700; font-size: 3vh; text-align: center; } .modal h2 { font-weight: 500; font-size: 1.7vh; text-align: center; padding-inline: 1rem; } .modal .buttons { display: flex; align-items: center; justify-content: center; gap: 2vw; } .modal .buttons .button { display: flex; justify-content: center; align-items: center; color: white; cursor: pointer; text-align: center; background-color: var(--contrast); height: 3.5vh; width: 8.5vw; border-radius: 5px; } .modal .buttons .button.red { background-color: rgb(253, 98, 98); } /* Notifications */ .notification-overlay { position: absolute; right: 0; display: flex; align-items: flex-end; justify-content: center; flex-direction: column; z-index: 1; } .notification { margin-bottom: 1vh; display: flex; align-items: center; gap: 1rem; font-family: 'Montserrat', sans-serif; background-color: var(--dark); color: var(--text); width: 20vw; height: 6vh; padding: .5rem; padding-inline: 2.5vh; border-top-left-radius: 10px; border-bottom-left-radius: 10px; transition: all 0.5s; border: 2px solid var(--main-light); animation: fromRight 1s forwards; } .notification i { font-size: 3.5vh; } .notification h1 { font-weight: 700; margin-bottom: .1rem; } .notification p { font-size: 15px; font-weight: 400; } /* Transitions */ .fade-enter-active, .fade-leave-active { transition: opacity .5s; } .fade-enter, .fade-leave-to { opacity: 0; } .fade-enter-to, .view-leave { opacity: 1; } .component-fade-enter-active, .component-fade-leave-active { transition: opacity .5s ease; } .component-fade-enter, .component-fade-leave-to { opacity: 0; } /* Keyframes */ @keyframes fromRight { from { transform: translateX(100%); } to { transform: translateX(1%); } }