/* Colors and settings. */ :root { /* Palette colors. */ --color-gray: rgb(130, 135, 140); --color-red: rgb(200, 70, 60); --color-orange: rgb(210, 135, 0); --color-teal: rgb(0, 130, 140); --color-blue: rgb(15, 115, 180); --color-green: rgb(45, 150, 90); /* Palette RGB colors. */ --rgb-color-gray: 130, 135, 140; --rgb-color-red: 200, 70, 60; --rgb-color-orange: 210, 135, 0; --rgb-color-yellow: 255, 175, 15; --rgb-color-teal: 0, 130, 140; --rgb-color-blue: 15, 115, 180; --rgb-color-green: 45, 150, 90; /* Light theme colors. */ --color-bg: rgb(255, 255, 255); --color-text: rgb(85, 85, 85); --color-text-title: rgb(20, 20, 20); --color-text-secondary: rgb(140, 140, 140); --color-btn-secondary: transparent; --color-btn-secondary-hover: rgb(230, 230, 230); --color-btn-secondary-active: rgb(210, 210, 210); --color-btn-secondary-border: rgba(0, 0, 0, .16); --color-border: rgba(0, 0, 0, .13); --color-block: rgb(242, 242, 242); --color-monitor: rgb(255, 255, 255); /* Settings. */ --container-width: 864px; --border-radius-block: .5rem; --border-radius-btn: .375rem; --spacing-1: .5rem; --spacing-2: .75rem; --spacing-3: 1rem; --spacing-4: 2rem; --btn-padding: 6px 12px; --font-size-title: 18px; --monitor-width-min: 30ch; --monitor-width-max: 1fr; --logo-width: 48px; --logo-height: 48px; --beat-height: 1.25rem; --monitor-items-margin: 4px; } /* Dark theme colors. */ .dark { --color-bg: rgb(8, 8, 8); --color-text: rgb(175, 175, 175); --color-text-title: rgb(240, 240, 240); --color-text-secondary: rgb(125, 125, 125); --color-btn-secondary: transparent; --color-btn-secondary-hover: rgb(41, 41, 41); --color-btn-secondary-active: rgb(31, 31, 31); --color-btn-secondary-border: rgba(255, 255, 255, .13); --color-border: rgba(255, 255, 255, .06); --color-block: rgb(21, 21, 21); --color-monitor: rgb(31, 31, 31); } body { background-color: var(--color-bg) !important; color: var(--color-text) !important; } a:not(.btn), .dark a:not(.btn) { color: inherit; } a:not(.btn):hover, .dark a:not(.btn):hover { color: var(--color-blue); } .container { margin-top: 0 !important; padding-top: var(--spacing-4); padding-right: var(--spacing-3); padding-left: var(--spacing-3); max-width: var(--container-width); } /* Element with logo and title. */ .title-flex { margin-bottom: var(--spacing-4) !important; } /* Center the logo. */ .logo-wrapper { margin-right: auto; margin-left: auto; } /* Resize the logo. */ .logo-wrapper img[data-v-b8247e57] { width: var(--logo-width); height: var(--logo-height); } /* Remove the title adjacent to the logo. */ span[data-v-7d4a7f28] { display: none; } /* Fix vertical margin of admin buttons on mobile. */ .mb-4[data-v-b8247e57]:has(.btn-info) { margin-bottom: var(--spacing-4) !important; } .mb-4[data-v-b8247e57]:has(.btn-info) div { display: flex; flex-wrap: wrap; gap: var(--spacing-1); } .mb-4[data-v-b8247e57]:has(.btn-info) div button { margin: 0 !important; } /* Block with admin buttons. */ .mb-4[data-v-b8247e57]:has(.btn-info) { border-radius: var(--border-radius-block); background-color: var(--color-block); padding: var(--spacing-3); } /* Admin button. */ .btn-info[data-v-b8247e57] { box-shadow: none; border: 1px solid var(--color-btn-secondary-border); border-radius: var(--border-radius-btn); background-color: var(--color-btn-secondary); padding: var(--btn-padding); color: var(--color-text-title); font-weight: 500; font-size: 14px; } .btn-info[data-v-b8247e57]:hover { background-color: var(--color-btn-secondary-hover); } .btn-info[data-v-b8247e57]:active { box-shadow: none; background-color: var(--color-btn-secondary-active); } .btn-info[data-v-b8247e57] svg { display: none; } /* Incident block */ .incident[data-v-b8247e57] { margin-bottom: var(--spacing-3) !important; border-radius: var(--border-radius-block); padding: var(--spacing-3) !important; color: var(--color-text-title) !important; } .incident[data-v-b8247e57].bg-info { background-color: rgba(var(--rgb-color-teal), .15) !important; } .incident[data-v-b8247e57].bg-warning { background-color: rgba(var(--rgb-color-orange), .15) !important; } .incident[data-v-b8247e57].bg-danger { background-color: rgba(var(--rgb-color-red), .15) !important; } .incident[data-v-b8247e57].bg-primary { background-color: rgba(var(--rgb-color-green), .15) !important; } .incident[data-v-b8247e57].bg-light { background-color: rgba(var(--rgb-color-gray), .3) !important; } .incident[data-v-b8247e57].bg-dark { background-color: rgba(var(--rgb-color-gray), .15) !important; } .incident[data-v-b8247e57] h4 { font-size: var(--font-size-title); } .incident[data-v-b8247e57] div { color: var(--color-text); } /* Main status block. */ .overall-status[data-v-b8247e57] { margin-bottom: var(--spacing-3) !important; box-shadow: none; border-radius: var(--border-radius-block); padding: var(--spacing-3) !important; color: #fff; font-weight: 500; font-size: var(--font-size-title); line-height: 1; } .overall-status[data-v-b8247e57]:has(.ok) { background-color: var(--color-green); } .overall-status[data-v-b8247e57]:has(.warning) { background-color: var(--color-orange); } .overall-status[data-v-b8247e57]:has(.danger) { background-color: var(--color-red); } .overall-status[data-v-b8247e57]:has(.status-maintenance) { background-color: var(--color-blue); } .overall-status[data-v-b8247e57] svg { display: none; } /* Maintenance block. */ .shadow-box.bg-maintenance { margin-top: var(--spacing-3) !important; margin-bottom: var(--spacing-3) !important; box-shadow: none; border-radius: var(--border-radius-block); background-color: rgba(var(--rgb-color-blue), .15) !important; padding: var(--spacing-3) !important; color: var(--color-text-title) !important; } .shadow-box.bg-maintenance .alert-heading { color: var(--color-text-title); font-weight: 500; font-size: var(--font-size-title); } .shadow-box.bg-maintenance .content { color: var(--color-text); } .shadow-box.bg-maintenance div[data-v-b8247e57]:not([class]) div:not([class]) { display: flex; flex-wrap: wrap; gap: var(--spacing-1); } /* Timeslot in the maintenance block. */ .timeslot { margin-top: 0; margin-right: 0 !important; border: 1px solid rgba(var(--rgb-color-blue), .25); border-radius: 2rem; background-color: rgba(var(--rgb-color-blue), .15) !important; color: var(--color-blue) !important; } /* User markdown elements. */ .alert-heading.p-2 { margin-bottom: var(--spacing-4); padding: 0 !important; } .alert-heading.p-2 p { margin: 0; } /* Page description. */ div > .alert-heading.p-2:has(*) { margin-top: var(--spacing-4); border-radius: var(--border-radius-block); background-color: var(--color-block); padding: var(--spacing-3) !important; } /* Monitor group. */ div[data-v-f71ca08e]:has(> .group-title) { margin-bottom: var(--spacing-3) !important; border-radius: var(--border-radius-block); background-color: var(--color-block); padding: var(--spacing-3); } /* Monitor group title. */ .group-title { margin-bottom: var(--spacing-3); color: var(--color-text-title); font-size: var(--font-size-title); } /* Monitor elements in the group. */ .shadow-box.monitor-list { margin-top: 0 !important; box-shadow: none; background-color: transparent !important; padding: 0; } .shadow-box.monitor-list > .monitor-list { display: grid; grid-template-columns: repeat( auto-fill, minmax( min(var(--monitor-width-min), 100%), var(--monitor-width-max) ) ); grid-gap: var(--spacing-3); } /* Adjusting grid layout at certain viewport sizes. */ /* It's not perfect, but it works. */ @media (min-width: 540px) and (max-width: 604px) { .shadow-box.monitor-list > .monitor-list { grid-template-columns: repeat( auto-fill, minmax( min(20ch, 100%), var(--monitor-width-max) ) ); } } /* Monitor item. */ .monitor-list .item { border: 1px solid var(--color-border); border-radius: var(--border-radius-block); background-color: var(--color-monitor); padding: var(--spacing-3) !important; } .monitor-list .item:hover { background-color: var(--color-monitor) !important; } .monitor-list .item > .row { flex-direction: column; } .monitor-list .item > .row > div { width: 100%; } /* Monitor name and badge container. */ .info { display: flex; justify-content: space-between; margin-bottom: var(--spacing-1); } /* Monitor name. */ .item-name[data-v-f71ca08e] { padding-right: 0; padding-left: var(--monitor-items-margin); overflow: hidden; color: var(--color-text-title); text-overflow: ellipsis; white-space: nowrap; } /* Uptime percentage badge (now just text). */ .badge { all: unset; order: 2; background-color: transparent !important; padding-right: var(--monitor-items-margin); color: var(--color-gray) !important; } .badge.bg-danger { color: var(--color-red) !important; } .badge.bg-warning { color: var(--color-orange) !important; } .badge.bg-primary { color: var(--color-green) !important; } .badge.bg-maintenance { color: var(--color-blue) !important; } /* Extra vertical indentation. */ .extra-info[data-v-f71ca08e] { display: none; } /* Wrapper for the uptime history timeline and daily uptime text. */ .wrap { padding: 0 !important; } .mobile .wrap { padding-bottom: 6px !important; } /* Uptime history timeline. */ .hp-bar-big { display: flex; justify-content: center; padding-bottom: var(--spacing-1); } .mobile .hp-bar-big { padding-bottom: 0; } /* Daily bar in the uptime history timeline. */ .hp-bar-big .beat[data-v-636dc6a9] { margin: 0 2px !important; background-color: var(--color-green); height: var(--beat-height) !important; } .hp-bar-big .beat[data-v-636dc6a9]:not(.empty):hover { transform: none; opacity: .75; transition: all ease-in-out .15s; } .hp-bar-big .beat[data-v-636dc6a9]:first-of-type { margin-left: 0 !important; } .hp-bar-big .beat[data-v-636dc6a9]:last-of-type { margin-right: 0 !important; } .hp-bar-big .beat[data-v-636dc6a9].empty { background-color: var(--color-gray); } .hp-bar-big .beat[data-v-636dc6a9].down { background-color: var(--color-red); } .hp-bar-big .beat[data-v-636dc6a9].pending { background-color: var(--color-orange); } .hp-bar-big .beat[data-v-636dc6a9].maintenance { background-color: var(--color-blue); } /* Daily uptime text (below day bars). */ .word[data-v-636dc6a9] { margin-right: var(--monitor-items-margin); margin-left: var(--monitor-items-margin) !important; color: var(--color-text); } /* Footer with user markdown, Uptime Kuma branding, and refresh timer. */ footer[data-v-b8247e57] { margin-top: var(--spacing-4) !important; margin-bottom: var(--spacing-4) !important; color: var(--color-text-secondary); } /* Extra spacing if the user footer has anything. */ footer .alert-heading.p-2:has(*) { margin-bottom: var(--spacing-3) !important; } /* Hide refresh timer in footer. */ /* Remove/comment "display: none" to restore visibility. */ .refresh-info[data-v-b8247e57] { display: none; opacity: 1; margin-bottom: 0 !important; }