WorkTracker/wwwroot/app.css
Marco cab549ab3a Refactor AppSettingsDocument and CoeffSnapshotDocument: Remove LunchBreakHours property
Add CalendarEventDocument and CalendarEventType enum for event management

Update WorkDayDocument to include WorkUnitDocument and CalendarEventDocument lists

Enhance CouchbaseLiteWorkDayService with methods for managing WorkUnit and CalendarEvent

Revise MonthlySummaryModel to track preview worked hours and counted work units

Improve CSS for calendar view, including responsive design and new item styles
2026-04-20 16:11:27 +02:00

231 lines
No EOL
5.7 KiB
CSS

html, body {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
a, .btn-link {
color: #006bb7;
}
.btn-primary {
color: #fff;
background-color: #1b6ec2;
border-color: #1861ac;
}
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}
.content {
padding-top: 1.1rem;
}
h1:focus {
outline: none;
}
.valid.modified:not([type=checkbox]) {
outline: 1px solid #26b050;
}
.invalid {
outline: 1px solid #e50000;
}
.validation-message {
color: #e50000;
}
.blazor-error-boundary {
background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
padding: 1rem 1rem 1rem 3.7rem;
color: white;
}
.blazor-error-boundary::after {
content: "An error has occurred."
}
.darker-border-checkbox.form-check-input {
border-color: #929292;
}
.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
color: var(--bs-secondary-color);
text-align: end;
}
.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
text-align: start;
}
/* Calendar view */
.calendar-table td.calendar-cell {
height: 10rem;
vertical-align: top;
padding: 0.25rem 0.4rem;
cursor: pointer;
min-width: 5rem;
position: relative;
}
.calendar-table td.calendar-cell:hover {
background-color: rgba(0, 0, 0, 0.05);
}
.calendar-cell-active {
box-shadow: inset 0 0 0 0.15rem #1b6ec2;
}
.calendar-day-number {
font-weight: bold;
font-size: 0.9rem;
margin-bottom: 0.3rem;
}
.calendar-day-total {
margin-top: auto;
padding-top: 0.25rem;
font-size: 0.72rem;
font-weight: 700;
text-align: right;
color: #334155;
}
.calendar-hours {
font-size: 0.75rem;
color: #666;
}
.calendar-item {
display: flex;
justify-content: space-between;
gap: 0.5rem;
width: 100%;
border: 0;
border-radius: 0.45rem;
font-size: 0.72rem;
margin-bottom: 0.2rem;
padding: 0.2rem 0.35rem;
text-align: left;
}
.calendar-item-work {
color: #14213d;
}
.calendar-item-office {
background-color: #cfe2ff;
}
.calendar-item-home {
background-color: #d1e7dd;
}
.calendar-item-preview-office {
background-color: rgba(207, 226, 255, 0.55);
border: 1px dashed #6c8ebf;
}
.calendar-item-preview-home {
background-color: rgba(209, 231, 221, 0.55);
border: 1px dashed #5b8a72;
}
.calendar-item-event {
color: #fff;
}
.calendar-item-generic {
background-color: #6c757d;
}
.calendar-item-dayoff {
background-color: #6c757d;
}
.calendar-item-closure {
background-color: #b08900;
}
.calendar-item-holiday {
background-color: #b02a37;
}
.calendar-item-illness {
background-color: #0c8599;
}
.calendar-popup {
position: absolute;
top: 2rem;
left: 0.35rem;
z-index: 20;
width: min(18rem, calc(100vw - 3rem));
background: #fff;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 0.75rem;
box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.18);
padding: 0.75rem;
}
.calendar-popup-section {
display: flex;
flex-direction: column;
gap: 0.35rem;
}
.calendar-popup-link {
border: 0;
border-radius: 0.5rem;
background: #f1f3f5;
padding: 0.45rem 0.6rem;
text-align: left;
}
.calendar-legend-work {
background-color: #cfe2ff;
color: #14213d;
}
.calendar-legend-home {
background-color: #d1e7dd;
color: #1d3b2a;
}
.calendar-legend-preview {
background-color: #fff3cd;
color: #6b4f00;
}
.calendar-weekend {
background-color: #ffe0e0 !important;
}
.calendar-closure {
background-color: #fff3cd !important;
}
.calendar-illness {
background-color: #d1ecf1 !important;
}
.calendar-dayoff {
background-color: #e2e3e5 !important;
}
.calendar-holiday {
background-color: #d4edda !important;
}
@media (max-width: 767.98px) {
.calendar-table td.calendar-cell {
height: 8rem;
min-width: 7rem;
}
.calendar-popup {
left: 0;
width: calc(100vw - 2rem);
}
}