62 lines
1.5 KiB
SCSS
62 lines
1.5 KiB
SCSS
// Bootstrap, compiled from source so the theme in scss/_theme.scss applies.
|
|
// Order matters: functions provide shade-color() to the theme, the theme sets
|
|
// its !default values before Bootstrap declares its own, and theme-overrides
|
|
// patches what 5.3 no longer derives from variables.
|
|
@import 'bootstrap/scss/functions';
|
|
@import 'scss/theme';
|
|
@import 'bootstrap/scss/bootstrap';
|
|
@import 'scss/theme-overrides';
|
|
|
|
// bootstrap-icons is imported from +layout.svelte, not here: its @font-face
|
|
// uses `url(./fonts/…)`, and Vite only rebases that to an emitted asset when
|
|
// the stylesheet goes through the CSS pipeline rather than the Sass one.
|
|
|
|
:root {
|
|
--navbar-height: 56px;
|
|
}
|
|
|
|
html,
|
|
body {
|
|
height: 100%;
|
|
}
|
|
|
|
/* Centered auth surface used by the login and register screens. */
|
|
.auth-shell {
|
|
min-height: 100vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 1.5rem;
|
|
}
|
|
|
|
.auth-card {
|
|
width: 100%;
|
|
max-width: 26rem;
|
|
}
|
|
|
|
.auth-logo {
|
|
width: 220px;
|
|
max-width: 70%;
|
|
height: auto;
|
|
}
|
|
|
|
/*
|
|
* Keyboard focus must stay visible over the map, where panels sit on a busy
|
|
* background and Bootstrap's default ring can wash out.
|
|
*/
|
|
:focus-visible {
|
|
outline: 2px solid var(--bs-primary);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* Respect reduced-motion: the wind particles and spinners are the only motion. */
|
|
@media (prefers-reduced-motion: reduce) {
|
|
*,
|
|
*::before,
|
|
*::after {
|
|
animation-duration: 0.001ms !important;
|
|
animation-iteration-count: 1 !important;
|
|
transition-duration: 0.001ms !important;
|
|
}
|
|
}
|