| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| /* Ionic's base CSS is loaded via the `styles` array in angular.json rather than from here. |
| A Sass `@import` of a .css file is emitted as a plain CSS @import with a bare package |
| specifier, which the dev server cannot resolve — it served index.html for every one of |
| them, so Ionic components rendered with no base styles at all. |
| |
| That array lists `@ionic/angular/css/ionic.bundle.css` before `src/styles.scss`, which is |
| what puts Ionic's stock `:root` palette ahead of everything below. Nothing in this file |
| can affect that ordering. |
| |
| Load order here decides the rest, and `ionic-theme` is last because it maps Ionic's |
| theming variables onto the design tokens `common` defines. `@use` emits each module's CSS |
| in the order the rules appear, so this list is the cascade. */ |
| @use 'styles/common' as *; |
| @use 'styles/dialogs'; |
| @use 'styles/ionic-theme'; |
| |
| :root { |
| --sidebar-width: 260px; |
| } |
| |
| /* Foundation Resets & Defaults */ |
| * { |
| margin: 0; |
| padding: 0; |
| box-sizing: border-box; |
| } |
| |
| /* The UI uses the platform's own interface font — no webfont is downloaded, from this origin |
| or any other. Inter used to be pulled from Google Fonts, which made the production build fail |
| whenever fonts.googleapis.com was unreachable and, at runtime, asked the browser for binaries |
| that `deploy/nginx.conf`'s `font-src 'self' data:` blocked outright. The deployed UI has |
| therefore always rendered in this stack; naming it explicitly is what the container already |
| showed users. `system-ui` leads so Linux and Android resolve their real UI font instead of |
| falling through to bare `sans-serif`. See DOCS/FONTS.md. */ |
| body { |
| font-family: |
| system-ui, |
| -apple-system, |
| BlinkMacSystemFont, |
| 'Segoe UI', |
| Roboto, |
| 'Helvetica Neue', |
| Arial, |
| sans-serif; |
| background-color: var(--bg-color); |
| color: var(--text-color); |
| line-height: 1.5; |
| -webkit-font-smoothing: antialiased; |
| } |
| |
| h1, |
| h2, |
| h3, |
| h4, |
| h5, |
| h6 { |
| color: var(--secondary-color); |
| } |
| |
| a { |
| color: var(--primary-color); |
| text-decoration: none; |
| } |
| |
| button { |
| font-family: inherit; |
| } |
| |
| /* Accessibility: Focus styles */ |
| :focus-visible { |
| outline: 3px solid var(--primary-color); |
| outline-offset: 2px; |
| } |
| |
| /* Utility classes */ |
| .sr-only { |
| position: absolute; |
| width: 1px; |
| height: 1px; |
| padding: 0; |
| margin: -1px; |
| overflow: hidden; |
| clip: rect(0, 0, 0, 0); |
| border: 0; |
| } |