| /* |
| * hores |
| * Copyright (c) 2023 Adrià Vilanova MartÃnez |
| * |
| * This program is free software: you can redistribute it and/or modify |
| * it under the terms of the GNU Affero General Public License as |
| * published by the Free Software Foundation, either version 3 of the |
| * License, or (at your option) any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU Affero General Public License for more details. |
| * |
| * You should have received a copy of the GNU Affero General Public |
| * License along with this program. |
| * If not, see http://www.gnu.org/licenses/. |
| */ |
| .schedule { |
| display: inline-flex; |
| flex: none; |
| border: 1px solid rgba(0,0,0,.12); |
| |
| --hour-height: 30px; |
| } |
| |
| .schedule .sidetime { |
| padding-top: 36px; |
| width: 40px; |
| } |
| |
| .schedule .sidetime .hour { |
| position: relative; |
| height: var(--hour-height); |
| } |
| |
| .schedule .sidetime .hour .hour--text { |
| position: absolute; |
| top: -9px; |
| right: 7px; |
| font-size: 11px; |
| } |
| |
| .schedule .day { |
| flex: 1 0 auto; |
| width: 100px; |
| min-width: 100px; |
| } |
| |
| .schedule .day .day--header { |
| text-align: center; |
| box-sizing: content-box; |
| height: 20px; |
| font-size: 18px; |
| font-weight: 300; |
| padding: 8px 0; |
| border-bottom: solid 1px #ccc; |
| } |
| |
| .schedule .day .day--content { |
| position: relative; |
| } |
| |
| .schedule .day .day--content .hour { |
| height: Calc(var(--hour-height) - 1px); |
| } |
| |
| .schedule .day .day--content .hour:not(:last-child) { |
| border-bottom: solid 1px #ddd; |
| } |
| |
| .schedule .day .day--content .hour:last-child, .schedule .sidetime .hour:last-child { |
| height: 13px; |
| } |
| |
| .schedule .day .day--content .work-event, .schedule .day .day--content .inline-event { |
| position: absolute; |
| border-radius: 3px; |
| overflow-y: auto; |
| } |
| |
| .schedule .day .day--content .event--actions { |
| position: absolute; |
| top: 4px; |
| right: 4px; |
| line-height: 14px; |
| background: #00000077; |
| border-radius: 5px; |
| z-index: 2; |
| } |
| |
| .schedule .day .day--content .event--actions .material-icons { |
| color: white; |
| font-size: 20px; |
| } |
| |
| .schedule .day .day--content .event--header, .schedule .day .day--content .event--body { |
| text-align: left; |
| font-size: 11px; |
| } |
| |
| .schedule .day .day--content .work-event { |
| left: 4px; |
| width: 92px; |
| background: #2E7D32; |
| } |
| |
| .schedule .day .day--content .work-event .event--header, .schedule .day .day--content .work-event .event--body { |
| line-height: 14px; |
| color: white; |
| } |
| |
| .schedule .day .day--content .work-event .event--header { |
| margin: 5px 5px 0 5px; |
| font-weight: bold; |
| } |
| |
| .schedule .day .day--content .work-event .event--body { |
| margin: 0 5px; |
| } |
| |
| .schedule .day .day--content .inline-event { |
| left: 3px; |
| width: 86px; |
| background: #81C784; |
| } |
| |
| .schedule .day .day--content .inline-event .event--header { |
| font-weight: 500; |
| } |
| |
| .schedule .day .day--content .inline-event .event--header, .schedule .day .day--content .inline-event .event--body { |
| line-height: 14px; |
| margin: 0 5px; |
| color: black; |
| } |
| |
| @media (hover: hover) { |
| .schedule .day .day--content .event--actions { |
| opacity: 0; |
| transition: opacity 0.15s ease-in; |
| background: #00000099; |
| } |
| |
| .schedule .day .day--content .work-event:hover .event--actions { |
| opacity: 1; |
| } |
| } |