@charset "UTF-8";/*! Osonnia Prism — bundled stylesheet * colour bone | type minimal | shape rounded | icons bootstrap | layout wide * Rebuild:node tools/build-css.js --theme bone --font minimal --shape rounded --icons bootstrap --layout wide * Requires Bootstrap 5 to be linked first. * The pair's webfonts are in here,served from assets/fonts/webfonts/. */ /*! * =========================================================================== * theme-system.css - Osonnia Prism v1.0.0 * ten themes built on top of Bootstrap 5,no build step * =========================================================================== * * WHAT IT IS * One design-variable layer (--t-*) wired straight into Bootstrap's own --bs-* * variables. Swap the theme file and every Bootstrap class follows along:* h1,.btn-primary,.table,.card,.nav,.form-control,.badge,.alert,* .progress,.modal,.pagination,.list-group,.dropdown,.accordion,* .offcanvas,.toast,.carousel ... * * CHOOSING A THEME ->you link the theme's CSS file. That is the whole API. * * <link href="dist/vendor/bootstrap/bootstrap.min.css" rel="stylesheet">* <link href="assets/css/theme-system.css" rel="stylesheet">* <link href="assets/css/themes/harbor.css" rel="stylesheet"><- THE THEME * * ...or link assets/css/styles.css alone and change the one @import inside. * * Available themes (assets/css/themes/):* harbor.css coastal blue-teal - balanced,trustworthy * slate.css corporate navy - dependable,conventional * midnight.css navy + cream - professional,luxe neutral * fern.css deep green - natural authority * sage.css soft green + beige - calm,quiet * terracotta.css warm clay + burgundy - grounded,editorial * rust.css burnt orange + navy - industrial,high energy * royal-gold.css gold on walnut - luxe,radiant * onyx.css black + honey - monochrome,max contrast * bone.css warm paper + black - minimal,long-form * * Link exactly ONE theme file,and link it AFTER this one. * * LIGHT / DARK * <html data-bs-theme="light">or <html data-bs-theme="dark">* Bootstrap 5's native switch - every theme ships both modes for free. * * TOKEN CHEAT SHEET - the names you actually type * Brand --t-primary --t-accent --t-ink --t-surface --t-paper * States --t-success --t-info --t-warning --t-danger * Surfaces --t-bg --t-bg-soft --t-card --t-elevated --t-light * Text --t-text --t-text-muted --t-text-faint --t-heading --t-link * Lines --t-border --t-border-soft --t-border-strong * Chrome --t-sidebar-bg --t-navbar-bg --t-sidebar-active * Shape --t-radius --t-radius-lg --t-radius-pill --t-shadow-md * Type --t-font --t-font-heading --t-h1 ... --t-h6 * Space --t-space-1 ... --t-space-7 * Motion --t-dur --t-ease * * Every brand/state variable also ships:* --t-X-rgb for rgba(var(--t-X-rgb),.5) * --t-X-hover / --t-X-active / --t-X-subtle / --t-X-border * --t-on-X text colour guaranteed readable on that colour * * AUDIT * node tools/check-contrast.js every pair,every theme,light and dark * =========================================================================== */:root{--t-radius-xs:4px;--t-radius-sm:6px;--t-radius:10px;--t-radius-lg:14px;--t-radius-xl:20px;--t-radius-pill:50rem;--t-space-1:0.25rem;--t-space-2:0.5rem;--t-space-3:0.75rem;--t-space-4:1rem;--t-space-5:1.5rem;--t-space-6:2rem;--t-space-7:3rem;--t-font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--t-font-heading:var(--t-font);--t-font-mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,"Liberation Mono",monospace;--t-heading-weight:700;--t-heading-tracking:-0.01em;--t-heading-leading:1.25;--t-heading-scale:1;--t-body-weight:400;--t-body-size:1rem;--t-body-tracking:0;--t-h1:1.75rem;--t-h2:1.5rem;--t-h3:1.25rem;--t-h4:1.125rem;--t-h5:1rem;--t-h6:0.875rem;--t-text-sm:0.8125rem;--t-text-xs:0.75rem;--t-weight-normal:400;--t-weight-medium:500;--t-weight-semibold:600;--t-weight-bold:700;--t-leading:1.55;--t-leading-tight:1.25;--t-tracking-tight:-0.01em;--prism-nav-h:4rem;--t-dur:180ms;--t-dur-slow:320ms;--t-ease:cubic-bezier(0.4,0,0.2,1);--t-mix-hover:12%;--t-mix-active:22%;--t-mix-subtle:12%}
:root{--t-primary:#134C65;--t-primary-rgb:19,76,101;--t-on-primary:#F0ECDA;--t-primary-text:#134C65;--t-accent:#487F86;--t-accent-rgb:72,127,134;--t-on-accent:#0B1E29;--t-ink:#152740;--t-ink-rgb:21,39,64;--t-surface:#F0ECDA;--t-support:#2A5C5F;--t-haze:#D1E0DE;--t-success:#2A5C5F;--t-success-rgb:42,92,95;--t-info:#487F86;--t-info-rgb:72,127,134;--t-warning:#D8B47F;--t-warning-rgb:216,180,127;--t-danger:#C4694F;--t-danger-rgb:196,105,79;--t-on-success:#F0ECDA;--t-on-info:#0B1E29;--t-on-warning:#152740;--t-on-danger:#FFFFFF;--t-primary-lift:#6FA9BE;--t-accent-lift:#7FBAC1;--t-paper:#FFFFFF}
:root,[data-bs-theme="light"][data-bs-theme="light"]{--t-bg:var(--t-paper,#FFFFFF);--t-bg-soft:color-mix(in srgb,var(--t-surface) 34%,var(--t-paper,#FFFFFF));--t-card:#FFFFFF;--t-elevated:#FFFFFF;--t-overlay:color-mix(in srgb,var(--t-ink) 55%,transparent);--t-text:var(--t-ink);--t-text-rgb:var(--t-ink-rgb);--t-text-muted:color-mix(in srgb,var(--t-ink) 76%,var(--t-paper,#FFFFFF));--t-text-faint:color-mix(in srgb,var(--t-ink) 70%,var(--t-paper,#FFFFFF));--t-heading:var(--t-ink);--t-border:color-mix(in srgb,var(--t-ink) 14%,#FFFFFF);--t-border-soft:color-mix(in srgb,var(--t-ink) 8%,#FFFFFF);--t-border-strong:color-mix(in srgb,var(--t-ink) 26%,#FFFFFF);--t-light:color-mix(in srgb,var(--t-surface) 40%,#FFFFFF);--t-light-rgb:246,244,239;--t-on-light:var(--t-ink);--t-bg-rgb:255,255,255;--t-sidebar-bg:var(--t-ink);--t-sidebar-text:color-mix(in srgb,var(--t-surface) 82%,#FFFFFF);--t-sidebar-muted:color-mix(in srgb,var(--t-surface) 72%,var(--t-ink));--t-sidebar-active:var(--t-primary-lift);--t-sidebar-active-text:color-mix(in srgb,var(--t-ink) 88%,#000000);--t-sidebar-hover:color-mix(in srgb,#FFFFFF 14%,var(--t-ink));--t-sidebar-border:color-mix(in srgb,#FFFFFF 12%,var(--t-ink));--t-navbar-bg:#FFFFFF;--t-navbar-text:var(--t-ink);--t-navbar-border:var(--t-border);--t-shadow-sm:0 1px 2px rgba(var(--t-ink-rgb),0.06);--t-shadow-md:0 4px 16px rgba(var(--t-ink-rgb),0.08);--t-shadow-lg:0 18px 48px rgba(var(--t-ink-rgb),0.14)}
[data-bs-theme="dark"][data-bs-theme="dark"]{color-scheme:dark;--t-primary:var(--t-primary-lift);--t-primary-text:var(--t-primary-lift);--t-accent-text:var(--t-accent-lift);--t-primary-on-subtle:var(--t-text);--t-accent-on-subtle:var(--t-text);--t-success-on-subtle:var(--t-text);--t-info-on-subtle:var(--t-text);--t-warning-on-subtle:var(--t-text);--t-danger-on-subtle:var(--t-text);--t-secondary-on-subtle:var(--t-text);--t-secondary-text:var(--t-accent-lift);--t-success-text:var(--t-success-lift);--t-info-text:var(--t-info-lift);--t-warning-text:var(--t-warning-lift);--t-danger-text:var(--t-danger-lift);--t-on-primary:color-mix(in srgb,var(--t-ink) 88%,#000000);--t-accent:var(--t-accent-lift);--t-on-accent:color-mix(in srgb,var(--t-ink) 88%,#000000);--t-primary-shade:var(--t-surface);--t-accent-shade:var(--t-surface);--t-bg:color-mix(in srgb,var(--t-ink) 92%,#000000);--t-bg-soft:color-mix(in srgb,var(--t-ink) 84%,#000000);--t-card:color-mix(in srgb,var(--t-ink) 96%,#FFFFFF);--t-elevated:color-mix(in srgb,var(--t-ink) 90%,#FFFFFF);--t-overlay:rgba(0,0,0,0.66);--t-text:color-mix(in srgb,var(--t-surface) 92%,#FFFFFF);--t-text-rgb:235,235,235;--t-text-muted:color-mix(in srgb,var(--t-surface) 78%,var(--t-ink));--t-text-faint:color-mix(in srgb,var(--t-surface) 72%,var(--t-ink));--t-heading:color-mix(in srgb,var(--t-surface) 98%,#FFFFFF);--t-border:color-mix(in srgb,#FFFFFF 13%,var(--t-ink));--t-border-soft:color-mix(in srgb,#FFFFFF 7%,var(--t-ink));--t-border-strong:color-mix(in srgb,#FFFFFF 26%,var(--t-ink));--t-light:color-mix(in srgb,#FFFFFF 12%,var(--t-ink));--t-light-rgb:var(--t-ink-rgb);--t-bg-rgb:var(--t-ink-rgb);--t-on-light:var(--t-text);--t-sidebar-bg:color-mix(in srgb,var(--t-ink) 98%,#000000);--t-sidebar-text:color-mix(in srgb,var(--t-surface) 80%,var(--t-ink));--t-sidebar-muted:color-mix(in srgb,var(--t-surface) 68%,var(--t-ink));--t-sidebar-active:var(--t-primary-lift);--t-sidebar-active-text:color-mix(in srgb,var(--t-ink) 88%,#000000);--t-sidebar-hover:color-mix(in srgb,#FFFFFF 12%,var(--t-ink));--t-mix-hover-ground:9%;--t-sidebar-border:color-mix(in srgb,#FFFFFF 10%,var(--t-ink));--t-navbar-bg:color-mix(in srgb,var(--t-ink) 96%,#FFFFFF);--t-navbar-text:var(--t-text);--t-navbar-border:var(--t-border);--t-shadow-sm:0 1px 2px rgba(0,0,0,0.4);--t-shadow-md:0 4px 16px rgba(0,0,0,0.45);--t-shadow-lg:0 18px 48px rgba(0,0,0,0.6);--t-success-shade:var(--t-ink);--t-info-shade:var(--t-ink);--t-warning-shade:var(--t-ink);--t-danger-shade:var(--t-ink);--t-primary-hover:color-mix(in srgb,var(--t-primary) calc(100% - var(--t-mix-hover)),var(--t-primary-shade));--t-primary-active:color-mix(in srgb,var(--t-primary) calc(100% - var(--t-mix-active)),var(--t-primary-shade));--t-primary-soft:color-mix(in srgb,var(--t-primary) 42%,var(--t-card));--t-primary-press:color-mix(in srgb,var(--t-primary) 62%,var(--t-primary-press-to,#FFFFFF));--t-on-primary-press:var(--t-on-primary);--t-btn-primary-bg:var(--t-primary);--t-btn-primary-color:var(--t-on-primary);--t-btn-primary-hover-bg:var(--t-primary-press);--t-btn-primary-hover-color:var(--t-on-primary-press);--t-hover:color-mix(in srgb,var(--t-primary) var(--t-mix-hover-ground),var(--t-card));--t-primary-subtle:color-mix(in srgb,var(--t-primary) var(--t-mix-subtle),var(--t-card));--t-primary-border:color-mix(in srgb,var(--t-primary) 34%,var(--t-card));--t-accent-hover:color-mix(in srgb,var(--t-accent) calc(100% - var(--t-mix-hover)),var(--t-accent-shade));--t-accent-active:color-mix(in srgb,var(--t-accent) calc(100% - var(--t-mix-active)),var(--t-accent-shade));--t-accent-subtle:color-mix(in srgb,var(--t-accent) var(--t-mix-subtle),var(--t-card));--t-accent-border:color-mix(in srgb,var(--t-accent) 34%,var(--t-card));--t-secondary:var(--t-accent);--t-secondary-rgb:var(--t-accent-rgb);--t-on-secondary:var(--t-on-accent);--t-secondary-hover:var(--t-accent-hover);--t-secondary-active:var(--t-accent-active);--t-secondary-subtle:var(--t-accent-subtle);--t-secondary-border:var(--t-accent-border);--t-success-hover:color-mix(in srgb,var(--t-success) calc(100% - var(--t-mix-hover)),var(--t-success-shade));--t-success-active:color-mix(in srgb,var(--t-success) calc(100% - var(--t-mix-active)),var(--t-success-shade));--t-success-subtle:color-mix(in srgb,var(--t-success) var(--t-mix-subtle),var(--t-card));--t-success-border:color-mix(in srgb,var(--t-success) 34%,var(--t-card));--t-info-hover:color-mix(in srgb,var(--t-info) calc(100% - var(--t-mix-hover)),var(--t-info-shade));--t-info-active:color-mix(in srgb,var(--t-info) calc(100% - var(--t-mix-active)),var(--t-info-shade));--t-info-subtle:color-mix(in srgb,var(--t-info) var(--t-mix-subtle),var(--t-card));--t-info-border:color-mix(in srgb,var(--t-info) 34%,var(--t-card));--t-warning-hover:color-mix(in srgb,var(--t-warning) calc(100% - var(--t-mix-hover)),var(--t-warning-shade));--t-warning-active:color-mix(in srgb,var(--t-warning) calc(100% - var(--t-mix-active)),var(--t-warning-shade));--t-warning-subtle:color-mix(in srgb,var(--t-warning) var(--t-mix-subtle),var(--t-card));--t-warning-border:color-mix(in srgb,var(--t-warning) 34%,var(--t-card));--t-danger-hover:color-mix(in srgb,var(--t-danger) calc(100% - var(--t-mix-hover)),var(--t-danger-shade));--t-danger-active:color-mix(in srgb,var(--t-danger) calc(100% - var(--t-mix-active)),var(--t-danger-shade));--t-danger-subtle:color-mix(in srgb,var(--t-danger) var(--t-mix-subtle),var(--t-card));--t-danger-border:color-mix(in srgb,var(--t-danger) 34%,var(--t-card));--t-primary-line:var(--t-primary-text);--t-link:var(--t-primary-text);--t-link-hover:var(--t-accent-text);--t-focus:0 0 0 0.2rem rgba(var(--t-primary-rgb),0.35)}
:root{--t-primary-shade:var(--t-ink);--t-accent-shade:var(--t-ink);--t-success-shade:var(--t-ink);--t-info-shade:var(--t-ink);--t-warning-shade:var(--t-ink);--t-danger-shade:var(--t-ink);--t-primary-hover:color-mix(in srgb,var(--t-primary) calc(100% - var(--t-mix-hover)),var(--t-primary-shade));--t-primary-active:color-mix(in srgb,var(--t-primary) calc(100% - var(--t-mix-active)),var(--t-primary-shade));--t-primary-soft:color-mix(in srgb,var(--t-primary) 42%,var(--t-card));--t-mix-press:28%;--t-primary-press:color-mix(in srgb,var(--t-primary) calc(100% - var(--t-mix-press)),var(--t-surface));--t-on-primary-press:#FFFFFF;--t-mix-hover-ground:18%;--t-hover:color-mix(in srgb,var(--t-primary) var(--t-mix-hover-ground),var(--t-card));--t-primary-subtle:color-mix(in srgb,var(--t-primary) var(--t-mix-subtle),var(--t-card));--t-primary-border:color-mix(in srgb,var(--t-primary) 34%,var(--t-card));--t-accent-hover:color-mix(in srgb,var(--t-accent) calc(100% - var(--t-mix-hover)),var(--t-accent-shade));--t-accent-active:color-mix(in srgb,var(--t-accent) calc(100% - var(--t-mix-active)),var(--t-accent-shade));--t-accent-subtle:color-mix(in srgb,var(--t-accent) var(--t-mix-subtle),var(--t-card));--t-accent-border:color-mix(in srgb,var(--t-accent) 34%,var(--t-card));--t-secondary:var(--t-accent);--t-secondary-rgb:var(--t-accent-rgb);--t-on-secondary:var(--t-on-accent);--t-secondary-hover:var(--t-accent-hover);--t-secondary-active:var(--t-accent-active);--t-secondary-subtle:var(--t-accent-subtle);--t-secondary-border:var(--t-accent-border);--t-success-hover:color-mix(in srgb,var(--t-success) calc(100% - var(--t-mix-hover)),var(--t-success-shade));--t-success-active:color-mix(in srgb,var(--t-success) calc(100% - var(--t-mix-active)),var(--t-success-shade));--t-success-subtle:color-mix(in srgb,var(--t-success) var(--t-mix-subtle),var(--t-card));--t-success-border:color-mix(in srgb,var(--t-success) 34%,var(--t-card));--t-info-hover:color-mix(in srgb,var(--t-info) calc(100% - var(--t-mix-hover)),var(--t-info-shade));--t-info-active:color-mix(in srgb,var(--t-info) calc(100% - var(--t-mix-active)),var(--t-info-shade));--t-info-subtle:color-mix(in srgb,var(--t-info) var(--t-mix-subtle),var(--t-card));--t-info-border:color-mix(in srgb,var(--t-info) 34%,var(--t-card));--t-warning-hover:color-mix(in srgb,var(--t-warning) calc(100% - var(--t-mix-hover)),var(--t-warning-shade));--t-warning-active:color-mix(in srgb,var(--t-warning) calc(100% - var(--t-mix-active)),var(--t-warning-shade));--t-warning-subtle:color-mix(in srgb,var(--t-warning) var(--t-mix-subtle),var(--t-card));--t-warning-border:color-mix(in srgb,var(--t-warning) 34%,var(--t-card));--t-danger-hover:color-mix(in srgb,var(--t-danger) calc(100% - var(--t-mix-hover)),var(--t-danger-shade));--t-danger-active:color-mix(in srgb,var(--t-danger) calc(100% - var(--t-mix-active)),var(--t-danger-shade));--t-danger-subtle:color-mix(in srgb,var(--t-danger) var(--t-mix-subtle),var(--t-card));--t-danger-border:color-mix(in srgb,var(--t-danger) 34%,var(--t-card));--t-accent-text:color-mix(in srgb,var(--t-accent) 45%,var(--t-ink));--t-success-text:color-mix(in srgb,var(--t-success) 45%,var(--t-ink));--t-info-text:color-mix(in srgb,var(--t-info) 45%,var(--t-ink));--t-warning-text:color-mix(in srgb,var(--t-warning) 45%,var(--t-ink));--t-danger-text:color-mix(in srgb,var(--t-danger) 45%,var(--t-ink));--t-secondary-text:var(--t-accent-text);--t-primary-on-subtle:var(--t-primary-text);--t-accent-on-subtle:var(--t-accent-text);--t-success-on-subtle:var(--t-success-text);--t-info-on-subtle:var(--t-info-text);--t-warning-on-subtle:var(--t-warning-text);--t-danger-on-subtle:var(--t-danger-text);--t-secondary-on-subtle:var(--t-accent-on-subtle);--t-primary-line:var(--t-primary-text);--t-link:var(--t-primary-text);--t-link-hover:var(--t-accent-text);--t-focus:0 0 0 0.2rem rgba(var(--t-primary-rgb),0.35)}
:root,[data-bs-theme="light"],[data-bs-theme="dark"]{--bs-primary:var(--t-primary);--bs-secondary:var(--t-secondary);--bs-success:var(--t-success);--bs-info:var(--t-info);--bs-warning:var(--t-warning);--bs-danger:var(--t-danger);--bs-light:var(--t-light);--bs-dark:var(--t-ink);--bs-purple:var(--t-accent);--bs-blue:var(--t-primary);--bs-teal:var(--t-info);--bs-cyan:var(--t-info);--bs-indigo:var(--t-accent);--bs-pink:var(--t-danger);--bs-red:var(--t-danger);--bs-orange:var(--t-warning);--bs-yellow:var(--t-warning);--bs-green:var(--t-success);--bs-primary-rgb:var(--t-primary-rgb);--bs-secondary-rgb:var(--t-secondary-rgb);--bs-success-rgb:var(--t-success-rgb);--bs-info-rgb:var(--t-info-rgb);--bs-warning-rgb:var(--t-warning-rgb);--bs-danger-rgb:var(--t-danger-rgb);--bs-light-rgb:var(--t-light-rgb);--bs-dark-rgb:var(--t-ink-rgb);--bs-purple-rgb:var(--t-accent-rgb);--bs-primary-bg-subtle:var(--t-primary-subtle);--bs-secondary-bg-subtle:var(--t-secondary-subtle);--bs-success-bg-subtle:var(--t-success-subtle);--bs-info-bg-subtle:var(--t-info-subtle);--bs-warning-bg-subtle:var(--t-warning-subtle);--bs-danger-bg-subtle:var(--t-danger-subtle);--bs-light-bg-subtle:var(--t-bg-soft);--bs-dark-bg-subtle:color-mix(in srgb,var(--t-ink) 18%,var(--t-card));--bs-primary-border-subtle:var(--t-primary-border);--bs-secondary-border-subtle:var(--t-secondary-border);--bs-success-border-subtle:var(--t-success-border);--bs-info-border-subtle:var(--t-info-border);--bs-warning-border-subtle:var(--t-warning-border);--bs-danger-border-subtle:var(--t-danger-border);--bs-light-border-subtle:var(--t-border-soft);--bs-dark-border-subtle:var(--t-border-strong);--bs-primary-text-emphasis:var(--t-primary-on-subtle);--bs-secondary-text-emphasis:var(--t-secondary-on-subtle);--bs-success-text-emphasis:var(--t-success-on-subtle);--bs-info-text-emphasis:var(--t-info-on-subtle);--bs-warning-text-emphasis:var(--t-warning-on-subtle);--bs-danger-text-emphasis:var(--t-danger-on-subtle);--bs-light-text-emphasis:var(--t-text-muted);--bs-dark-text-emphasis:var(--t-text);--bs-body-bg:var(--t-bg);--bs-body-bg-rgb:var(--t-bg-rgb);--bs-body-color:var(--t-text);--bs-body-color-rgb:var(--t-text-rgb);--bs-body-font-family:var(--t-font);--bs-body-font-size:var(--t-body-size);--bs-body-font-weight:var(--t-body-weight);--bs-body-line-height:var(--t-leading);--bs-heading-color:var(--t-heading);--bs-emphasis-color:var(--t-heading);--bs-secondary-color:var(--t-text-muted);--bs-secondary-bg:var(--t-bg-soft);--bs-tertiary-color:var(--t-text-faint);--bs-tertiary-bg:var(--t-bg-soft);--bs-link-color:var(--t-link);--bs-link-color-rgb:var(--t-primary-rgb);--bs-link-hover-color:var(--t-link-hover);--bs-link-hover-color-rgb:var(--t-primary-rgb);--bs-code-color:var(--t-accent-text);--bs-highlight-bg:var(--t-warning-subtle);--bs-highlight-color:var(--t-text);--bs-border-color:var(--t-border);--bs-border-color-translucent:var(--t-border);--bs-border-radius-sm:var(--t-radius-sm);--bs-border-radius:var(--t-radius);--bs-border-radius-lg:var(--t-radius-lg);--bs-border-radius-xl:var(--t-radius-xl);--bs-border-radius-xxl:var(--t-radius-xl);--bs-border-radius-pill:var(--t-radius-pill);--bs-box-shadow-sm:var(--t-shadow-sm);--bs-box-shadow:var(--t-shadow-md);--bs-box-shadow-lg:var(--t-shadow-lg);--bs-focus-ring-color:rgba(var(--t-primary-rgb),0.3);--bs-form-valid-color:var(--t-success-text);--bs-form-valid-border-color:var(--t-success);--bs-form-invalid-color:var(--t-danger-text);--bs-form-invalid-border-color:var(--t-danger);--bs-gray-100:color-mix(in srgb,var(--t-ink) 4%,var(--t-bg));--bs-gray-200:color-mix(in srgb,var(--t-ink) 9%,var(--t-bg));--bs-gray-300:color-mix(in srgb,var(--t-ink) 16%,var(--t-bg));--bs-gray-400:color-mix(in srgb,var(--t-ink) 28%,var(--t-bg));--bs-gray-500:color-mix(in srgb,var(--t-ink) 42%,var(--t-bg));--bs-gray-600:color-mix(in srgb,var(--t-ink) 58%,var(--t-bg));--bs-gray-700:color-mix(in srgb,var(--t-ink) 72%,var(--t-bg));--bs-gray-800:color-mix(in srgb,var(--t-ink) 86%,var(--t-bg));--bs-gray-900:var(--t-ink);--bs-gray:var(--t-text-muted);--bs-gray-dark:var(--t-ink);--bs-gray-light:var(--t-text-faint);--bs-gray-lighter:var(--t-border);--bs-gray-lightest:var(--t-border-soft)}
.btn-primary{--bs-btn-color:var(--t-btn-primary-color,var(--t-on-primary));--bs-btn-bg:var(--t-btn-primary-bg,var(--t-primary));--bs-btn-border-color:var(--t-btn-primary-bg,var(--t-primary));--bs-btn-hover-color:var(--t-btn-primary-hover-color,var(--t-on-primary-press));--bs-btn-hover-bg:var(--t-btn-primary-hover-bg,var(--t-primary-press));--bs-btn-hover-border-color:var(--t-btn-primary-hover-bg,var(--t-primary-press));--bs-btn-active-color:var(--t-on-primary);--bs-btn-active-bg:var(--t-primary-active);--bs-btn-active-border-color:var(--t-primary-active);--bs-btn-disabled-color:var(--t-on-primary);--bs-btn-disabled-bg:var(--t-primary);--bs-btn-disabled-border-color:var(--t-primary);--bs-btn-focus-shadow-rgb:var(--t-primary-rgb)}
.btn-secondary{--bs-btn-color:var(--t-on-secondary);--bs-btn-bg:var(--t-secondary);--bs-btn-border-color:var(--t-secondary);--bs-btn-hover-color:var(--t-on-secondary);--bs-btn-hover-bg:var(--t-secondary-hover);--bs-btn-hover-border-color:var(--t-secondary-hover);--bs-btn-active-color:var(--t-on-secondary);--bs-btn-active-bg:var(--t-secondary-active);--bs-btn-active-border-color:var(--t-secondary-active);--bs-btn-disabled-color:var(--t-on-secondary);--bs-btn-disabled-bg:var(--t-secondary);--bs-btn-disabled-border-color:var(--t-secondary);--bs-btn-focus-shadow-rgb:var(--t-secondary-rgb)}
.btn-success{--bs-btn-color:var(--t-on-success);--bs-btn-bg:var(--t-success);--bs-btn-border-color:var(--t-success);--bs-btn-hover-color:var(--t-on-success);--bs-btn-hover-bg:var(--t-success-hover);--bs-btn-hover-border-color:var(--t-success-hover);--bs-btn-active-color:var(--t-on-success);--bs-btn-active-bg:var(--t-success-active);--bs-btn-active-border-color:var(--t-success-active);--bs-btn-disabled-color:var(--t-on-success);--bs-btn-disabled-bg:var(--t-success);--bs-btn-disabled-border-color:var(--t-success);--bs-btn-focus-shadow-rgb:var(--t-success-rgb)}
.btn-info{--bs-btn-color:var(--t-on-info);--bs-btn-bg:var(--t-info);--bs-btn-border-color:var(--t-info);--bs-btn-hover-color:var(--t-on-info);--bs-btn-hover-bg:var(--t-info-hover);--bs-btn-hover-border-color:var(--t-info-hover);--bs-btn-active-color:var(--t-on-info);--bs-btn-active-bg:var(--t-info-active);--bs-btn-active-border-color:var(--t-info-active);--bs-btn-disabled-color:var(--t-on-info);--bs-btn-disabled-bg:var(--t-info);--bs-btn-disabled-border-color:var(--t-info);--bs-btn-focus-shadow-rgb:var(--t-info-rgb)}
.btn-warning{--bs-btn-color:var(--t-on-warning);--bs-btn-bg:var(--t-warning);--bs-btn-border-color:var(--t-warning);--bs-btn-hover-color:var(--t-on-warning);--bs-btn-hover-bg:var(--t-warning-hover);--bs-btn-hover-border-color:var(--t-warning-hover);--bs-btn-active-color:var(--t-on-warning);--bs-btn-active-bg:var(--t-warning-active);--bs-btn-active-border-color:var(--t-warning-active);--bs-btn-disabled-color:var(--t-on-warning);--bs-btn-disabled-bg:var(--t-warning);--bs-btn-disabled-border-color:var(--t-warning);--bs-btn-focus-shadow-rgb:var(--t-warning-rgb)}
.btn-danger{--bs-btn-color:var(--t-on-danger);--bs-btn-bg:var(--t-danger);--bs-btn-border-color:var(--t-danger);--bs-btn-hover-color:var(--t-on-danger);--bs-btn-hover-bg:var(--t-danger-hover);--bs-btn-hover-border-color:var(--t-danger-hover);--bs-btn-active-color:var(--t-on-danger);--bs-btn-active-bg:var(--t-danger-active);--bs-btn-active-border-color:var(--t-danger-active);--bs-btn-disabled-color:var(--t-on-danger);--bs-btn-disabled-bg:var(--t-danger);--bs-btn-disabled-border-color:var(--t-danger);--bs-btn-focus-shadow-rgb:var(--t-danger-rgb)}
.btn-light{--bs-btn-color:var(--t-on-light);--bs-btn-bg:var(--t-light);--bs-btn-border-color:var(--t-border);--bs-btn-hover-color:var(--t-on-light);--bs-btn-hover-bg:color-mix(in srgb,var(--t-light) 88%,var(--t-ink));--bs-btn-hover-border-color:var(--t-border-strong);--bs-btn-active-color:var(--t-on-light);--bs-btn-active-bg:color-mix(in srgb,var(--t-light) 78%,var(--t-ink));--bs-btn-active-border-color:var(--t-border-strong);--bs-btn-disabled-color:var(--t-text-faint);--bs-btn-disabled-bg:var(--t-light);--bs-btn-disabled-border-color:var(--t-border)}
.btn-dark{--bs-btn-color:var(--t-surface);--bs-btn-bg:var(--t-ink);--bs-btn-border-color:var(--t-ink);--bs-btn-hover-color:var(--t-surface);--bs-btn-hover-bg:color-mix(in srgb,var(--t-ink) 86%,#FFFFFF);--bs-btn-hover-border-color:color-mix(in srgb,var(--t-ink) 86%,#FFFFFF);--bs-btn-active-color:var(--t-surface);--bs-btn-active-bg:color-mix(in srgb,var(--t-ink) 78%,#FFFFFF);--bs-btn-active-border-color:color-mix(in srgb,var(--t-ink) 78%,#FFFFFF);--bs-btn-disabled-color:var(--t-surface);--bs-btn-disabled-bg:var(--t-ink);--bs-btn-disabled-border-color:var(--t-ink)}
.btn-outline-primary{--bs-btn-color:var(--t-primary-text);--bs-btn-border-color:var(--t-primary);--bs-btn-hover-color:var(--t-on-primary-press);--bs-btn-hover-bg:var(--t-primary-press);--bs-btn-hover-border-color:var(--t-primary-press);--bs-btn-active-color:var(--t-on-primary);--bs-btn-active-bg:var(--t-primary-active);--bs-btn-active-border-color:var(--t-primary-active);--bs-btn-disabled-color:var(--t-primary);--bs-btn-disabled-border-color:var(--t-primary);--bs-btn-focus-shadow-rgb:var(--t-primary-rgb)}
.btn-outline-secondary{--bs-btn-color:var(--t-secondary-text);--bs-btn-border-color:var(--t-secondary);--bs-btn-hover-color:var(--t-on-secondary);--bs-btn-hover-bg:var(--t-secondary);--bs-btn-hover-border-color:var(--t-secondary);--bs-btn-active-color:var(--t-on-secondary);--bs-btn-active-bg:var(--t-secondary-active);--bs-btn-active-border-color:var(--t-secondary-active);--bs-btn-disabled-color:var(--t-secondary);--bs-btn-disabled-border-color:var(--t-secondary);--bs-btn-focus-shadow-rgb:var(--t-secondary-rgb)}
.btn-outline-success{--bs-btn-color:var(--t-success-text);--bs-btn-border-color:var(--t-success);--bs-btn-hover-color:var(--t-on-success);--bs-btn-hover-bg:var(--t-success);--bs-btn-hover-border-color:var(--t-success);--bs-btn-active-color:var(--t-on-success);--bs-btn-active-bg:var(--t-success-active);--bs-btn-active-border-color:var(--t-success-active);--bs-btn-disabled-color:var(--t-success);--bs-btn-disabled-border-color:var(--t-success);--bs-btn-focus-shadow-rgb:var(--t-success-rgb)}
.btn-outline-info{--bs-btn-color:var(--t-info-text);--bs-btn-border-color:var(--t-info);--bs-btn-hover-color:var(--t-on-info);--bs-btn-hover-bg:var(--t-info);--bs-btn-hover-border-color:var(--t-info);--bs-btn-active-color:var(--t-on-info);--bs-btn-active-bg:var(--t-info-active);--bs-btn-active-border-color:var(--t-info-active);--bs-btn-disabled-color:var(--t-info);--bs-btn-disabled-border-color:var(--t-info);--bs-btn-focus-shadow-rgb:var(--t-info-rgb)}
.btn-outline-warning{--bs-btn-color:var(--t-warning-text);--bs-btn-border-color:var(--t-warning);--bs-btn-hover-color:var(--t-on-warning);--bs-btn-hover-bg:var(--t-warning);--bs-btn-hover-border-color:var(--t-warning);--bs-btn-active-color:var(--t-on-warning);--bs-btn-active-bg:var(--t-warning-active);--bs-btn-active-border-color:var(--t-warning-active);--bs-btn-disabled-color:var(--t-warning);--bs-btn-disabled-border-color:var(--t-warning);--bs-btn-focus-shadow-rgb:var(--t-warning-rgb)}
.btn-outline-danger{--bs-btn-color:var(--t-danger-text);--bs-btn-border-color:var(--t-danger);--bs-btn-hover-color:var(--t-on-danger);--bs-btn-hover-bg:var(--t-danger);--bs-btn-hover-border-color:var(--t-danger);--bs-btn-active-color:var(--t-on-danger);--bs-btn-active-bg:var(--t-danger-active);--bs-btn-active-border-color:var(--t-danger-active);--bs-btn-disabled-color:var(--t-danger);--bs-btn-disabled-border-color:var(--t-danger);--bs-btn-focus-shadow-rgb:var(--t-danger-rgb)}
.btn-outline-light{--bs-btn-color:currentColor;--bs-btn-border-color:color-mix(in srgb,currentColor 45%,transparent);--bs-btn-hover-color:var(--t-ink);--bs-btn-hover-bg:var(--t-light);--bs-btn-hover-border-color:var(--t-light);--bs-btn-active-color:var(--t-ink);--bs-btn-active-bg:var(--t-light);--bs-btn-active-border-color:var(--t-light);--bs-btn-disabled-color:color-mix(in srgb,currentColor 55%,transparent);--bs-btn-disabled-border-color:color-mix(in srgb,currentColor 25%,transparent)}
.t-bg-ink .btn-outline-light,.text-bg-dark .btn-outline-light{--bs-btn-hover-bg:var(--t-surface);--bs-btn-hover-border-color:var(--t-surface);--bs-btn-active-bg:var(--t-surface);--bs-btn-active-border-color:var(--t-surface)}
.btn-outline-dark{--bs-btn-color:var(--t-ink);--bs-btn-border-color:var(--t-ink);--bs-btn-hover-color:var(--t-surface);--bs-btn-hover-bg:var(--t-ink);--bs-btn-hover-border-color:var(--t-ink);--bs-btn-active-color:var(--t-surface);--bs-btn-active-bg:var(--t-ink);--bs-btn-active-border-color:var(--t-ink)}
.btn-link{--bs-btn-color:var(--t-link);--bs-btn-hover-color:var(--t-link-hover);--bs-btn-active-color:var(--t-link-hover)}
.btn-sm,.btn-group-sm>.btn{min-height:1.5rem}
.btn{--bs-btn-border-radius:var(--t-radius);--bs-btn-font-family:var(--t-font);--bs-btn-font-weight:var(--t-weight-semibold);transition:background-color var(--t-dur) var(--t-ease),border-color var(--t-dur) var(--t-ease),color var(--t-dur) var(--t-ease),box-shadow var(--t-dur) var(--t-ease)}
.card{--bs-card-bg:var(--t-card);--bs-card-color:var(--t-text);--bs-card-border-color:var(--t-border);--bs-card-border-radius:var(--t-radius-lg);--bs-card-inner-border-radius:var(--t-radius);--bs-card-cap-bg:var(--t-bg-soft);--bs-card-cap-color:var(--t-heading);--bs-card-box-shadow:var(--t-shadow-sm);--bs-card-title-color:var(--t-heading);--bs-card-subtitle-color:var(--t-text-muted)}
.table{--bs-table-color:var(--t-text);--bs-table-bg:transparent;--bs-table-border-color:var(--t-border);--bs-table-striped-color:var(--t-text);--bs-table-striped-bg:var(--t-bg-soft);--bs-table-active-color:var(--t-text);--bs-table-active-bg:var(--t-primary-subtle);--bs-table-hover-color:var(--t-text);--bs-table-hover-bg:var(--t-primary-subtle)}
.table>thead{color:var(--t-heading)}
.table-primary{--bs-table-color:var(--t-text);--bs-table-bg:var(--t-primary-subtle);--bs-table-border-color:var(--t-primary-border);--bs-table-striped-bg:color-mix(in srgb,var(--t-primary) 18%,var(--t-card));--bs-table-hover-bg:color-mix(in srgb,var(--t-primary) 22%,var(--t-card));--bs-table-active-bg:color-mix(in srgb,var(--t-primary) 26%,var(--t-card))}
.table-secondary{--bs-table-color:var(--t-text);--bs-table-bg:var(--t-secondary-subtle);--bs-table-border-color:var(--t-secondary-border);--bs-table-striped-bg:color-mix(in srgb,var(--t-secondary) 18%,var(--t-card));--bs-table-hover-bg:color-mix(in srgb,var(--t-secondary) 22%,var(--t-card));--bs-table-active-bg:color-mix(in srgb,var(--t-secondary) 26%,var(--t-card))}
.table-success{--bs-table-color:var(--t-text);--bs-table-bg:var(--t-success-subtle);--bs-table-border-color:var(--t-success-border);--bs-table-striped-bg:color-mix(in srgb,var(--t-success) 18%,var(--t-card));--bs-table-hover-bg:color-mix(in srgb,var(--t-success) 22%,var(--t-card));--bs-table-active-bg:color-mix(in srgb,var(--t-success) 26%,var(--t-card))}
.table-info{--bs-table-color:var(--t-text);--bs-table-bg:var(--t-info-subtle);--bs-table-border-color:var(--t-info-border);--bs-table-striped-bg:color-mix(in srgb,var(--t-info) 18%,var(--t-card));--bs-table-hover-bg:color-mix(in srgb,var(--t-info) 22%,var(--t-card));--bs-table-active-bg:color-mix(in srgb,var(--t-info) 26%,var(--t-card))}
.table-warning{--bs-table-color:var(--t-text);--bs-table-bg:var(--t-warning-subtle);--bs-table-border-color:var(--t-warning-border);--bs-table-striped-bg:color-mix(in srgb,var(--t-warning) 18%,var(--t-card));--bs-table-hover-bg:color-mix(in srgb,var(--t-warning) 22%,var(--t-card));--bs-table-active-bg:color-mix(in srgb,var(--t-warning) 26%,var(--t-card))}
.table-danger{--bs-table-color:var(--t-text);--bs-table-bg:var(--t-danger-subtle);--bs-table-border-color:var(--t-danger-border);--bs-table-striped-bg:color-mix(in srgb,var(--t-danger) 18%,var(--t-card));--bs-table-hover-bg:color-mix(in srgb,var(--t-danger) 22%,var(--t-card));--bs-table-active-bg:color-mix(in srgb,var(--t-danger) 26%,var(--t-card))}
.table-light{--bs-table-color:var(--t-text);--bs-table-bg:var(--t-bg-soft);--bs-table-border-color:var(--t-border)}
.table-dark{--bs-table-color:var(--t-surface);--bs-table-bg:var(--t-ink);--bs-table-border-color:color-mix(in srgb,#FFFFFF 16%,var(--t-ink));--bs-table-striped-color:var(--t-surface);--bs-table-striped-bg:color-mix(in srgb,#FFFFFF 6%,var(--t-ink));--bs-table-hover-color:var(--t-surface);--bs-table-hover-bg:color-mix(in srgb,#FFFFFF 10%,var(--t-ink))}
.form-control,.form-select{background-color:var(--t-card);border-color:var(--t-border);color:var(--t-text);border-radius:var(--t-radius);transition:border-color var(--t-dur) var(--t-ease),box-shadow var(--t-dur) var(--t-ease)}
.form-control:focus,.form-select:focus{background-color:var(--t-card);border-color:var(--t-primary);color:var(--t-text);box-shadow:var(--t-focus)}
.form-control::placeholder{color:var(--t-text-faint);opacity:1}
.form-control:disabled,.form-select:disabled{background-color:var(--t-bg-soft);color:var(--t-text-faint)}
.form-label,.col-form-label{color:var(--t-heading);font-weight:var(--t-weight-medium)}
.form-text{color:var(--t-text-muted)}
.input-group-text{background-color:var(--t-bg-soft);border-color:var(--t-border);color:var(--t-text-muted)}
.form-check-input{background-color:var(--t-card);border-color:var(--t-border-strong)}
.form-check-input:checked{background-color:var(--t-primary);border-color:var(--t-primary)}
.form-check-input:focus{border-color:var(--t-primary);box-shadow:var(--t-focus)}
.form-switch .form-check-input:focus,.form-check-input[type="checkbox"]:indeterminate{background-color:var(--t-primary);border-color:var(--t-primary)}
.form-range::-webkit-slider-thumb{background-color:var(--t-primary)}
.form-range::-moz-range-thumb{background-color:var(--t-primary)}
.form-floating>label{color:var(--t-text-muted)}
.nav-tabs{--bs-nav-tabs-border-color:var(--t-border);--bs-nav-tabs-link-active-color:var(--t-primary-text);--bs-nav-tabs-link-active-bg:var(--t-card);--bs-nav-tabs-link-active-border-color:var(--t-border) var(--t-border) var(--t-card);--bs-nav-tabs-link-hover-border-color:var(--t-border-soft);--bs-nav-link-color:var(--t-text-muted);--bs-nav-link-hover-color:var(--t-primary-text)}
.nav-pills{--bs-nav-pills-border-radius:var(--t-radius);--bs-nav-pills-link-active-color:var(--t-on-primary);--bs-nav-pills-link-active-bg:var(--t-primary);--bs-nav-link-color:var(--t-text-muted);--bs-nav-link-hover-color:var(--t-primary-text)}
.nav{--bs-nav-link-color:var(--t-text-muted);--bs-nav-link-hover-color:var(--t-primary-text)}
.breadcrumb{--bs-breadcrumb-divider-color:var(--t-text-faint);--bs-breadcrumb-item-active-color:var(--t-text-muted);--bs-breadcrumb-bg:transparent}
.row{margin-inline:calc(-0.5 * min(var(--bs-gutter-x),1.5rem))}
.table-responsive{contain:paint}
.page-link{min-width:1.75rem;min-height:1.5rem;text-align:center}
.pagination{flex-wrap:wrap;--bs-pagination-color:var(--t-text-muted);--bs-pagination-bg:var(--t-card);--bs-pagination-border-color:var(--t-border);--bs-pagination-hover-color:var(--t-primary-text);--bs-pagination-hover-bg:var(--t-hover);--bs-pagination-hover-border-color:var(--t-border);--bs-pagination-focus-color:var(--t-primary-text);--bs-pagination-focus-bg:var(--t-bg-soft);--bs-pagination-focus-box-shadow:var(--t-focus);--bs-pagination-active-color:var(--t-on-primary);--bs-pagination-active-bg:var(--t-primary);--bs-pagination-active-border-color:var(--t-primary);--bs-pagination-disabled-color:var(--t-text-faint);--bs-pagination-disabled-bg:var(--t-bg-soft);--bs-pagination-disabled-border-color:var(--t-border);--bs-pagination-border-radius:var(--t-radius-sm)}
.alert{--bs-alert-border-radius:var(--t-radius)}
.alert-primary{--bs-alert-color:var(--t-primary-on-subtle);--bs-alert-bg:var(--t-primary-subtle);--bs-alert-border-color:var(--t-primary-border)}
.alert-secondary{--bs-alert-color:var(--t-secondary-on-subtle);--bs-alert-bg:var(--t-secondary-subtle);--bs-alert-border-color:var(--t-secondary-border)}
.alert-success{--bs-alert-color:var(--t-success-on-subtle);--bs-alert-bg:var(--t-success-subtle);--bs-alert-border-color:var(--t-success-border)}
.alert-info{--bs-alert-color:var(--t-info-on-subtle);--bs-alert-bg:var(--t-info-subtle);--bs-alert-border-color:var(--t-info-border)}
.alert-warning{--bs-alert-color:var(--t-warning-on-subtle);--bs-alert-bg:var(--t-warning-subtle);--bs-alert-border-color:var(--t-warning-border)}
.alert-danger{--bs-alert-color:var(--t-danger-on-subtle);--bs-alert-bg:var(--t-danger-subtle);--bs-alert-border-color:var(--t-danger-border)}
.alert-light{--bs-alert-color:var(--t-text);--bs-alert-bg:var(--t-bg-soft);--bs-alert-border-color:var(--t-border)}
.alert-dark{--bs-alert-color:var(--t-surface);--bs-alert-bg:var(--t-ink);--bs-alert-border-color:var(--t-ink)}
.badge{--bs-badge-border-radius:var(--t-radius-sm);font-weight:var(--t-weight-semibold)}
.badge.bg-primary{color:var(--t-on-primary) !important}
.badge.bg-secondary{color:var(--t-on-secondary) !important}
.badge.bg-success{color:var(--t-on-success) !important}
.badge.bg-info{color:var(--t-on-info) !important}
.badge.bg-warning{color:var(--t-on-warning) !important}
.badge.bg-danger{color:var(--t-on-danger) !important}
.badge.bg-light{color:var(--t-on-light) !important}
.badge.bg-dark{color:var(--t-surface) !important}
.text-bg-primary{color:var(--t-on-primary) !important;background-color:var(--t-primary) !important}
.text-bg-primary,.text-bg-secondary,.text-bg-success,.text-bg-danger,.text-bg-warning,.text-bg-info,.text-bg-light,.text-bg-dark,.t-bg-primary,.t-bg-accent,.t-bg-ink,.t-bg-surface{--bs-heading-color:inherit;--bs-body-color:inherit;--bs-card-color:inherit;--bs-card-title-color:inherit;--bs-card-subtitle-color:inherit}
.text-bg-primary:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6,code,.card-title),.text-bg-secondary:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6,code,.card-title),.text-bg-success:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6,code,.card-title),.text-bg-danger:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6,code,.card-title),.text-bg-warning:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6,code,.card-title),.text-bg-info:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6,code,.card-title),.text-bg-light:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6,code,.card-title),.text-bg-dark:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6,code,.card-title),.t-bg-primary:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6,code,.card-title),.t-bg-accent:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6,code,.card-title),.t-bg-ink:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6,code,.card-title),.t-bg-surface:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6,code,.card-title){color:inherit}
.text-bg-secondary{color:var(--t-on-secondary) !important;background-color:var(--t-secondary) !important}
.text-bg-success{color:var(--t-on-success) !important;background-color:var(--t-success) !important}
.text-bg-info{color:var(--t-on-info) !important;background-color:var(--t-info) !important}
.text-bg-warning{color:var(--t-on-warning) !important;background-color:var(--t-warning) !important}
.text-bg-danger{color:var(--t-on-danger) !important;background-color:var(--t-danger) !important}
.text-bg-light{color:var(--t-on-light) !important;background-color:var(--t-light) !important}
.text-bg-dark{color:var(--t-surface) !important;background-color:var(--t-ink) !important}
.bg-primary{color:var(--t-on-primary)}
.bg-secondary{color:var(--t-on-secondary)}
.bg-success{color:var(--t-on-success)}
.bg-info{color:var(--t-on-info)}
.bg-warning{color:var(--t-on-warning)}
.bg-danger{color:var(--t-on-danger)}
.list-group{--bs-list-group-bg:var(--t-card);--bs-list-group-color:var(--t-text);--bs-list-group-border-color:var(--t-border);--bs-list-group-border-radius:var(--t-radius);--bs-list-group-action-color:var(--t-text);--bs-list-group-action-hover-color:var(--t-text);--bs-list-group-action-hover-bg:var(--t-hover);--bs-list-group-action-active-bg:var(--t-bg-soft);--bs-list-group-active-color:var(--t-on-primary);--bs-list-group-active-bg:var(--t-primary);--bs-list-group-active-border-color:var(--t-primary);--bs-list-group-disabled-color:var(--t-text-faint)}
.dropdown-menu{--bs-dropdown-bg:var(--t-elevated);--bs-dropdown-color:var(--t-text);--bs-dropdown-border-color:var(--t-border);--bs-dropdown-border-radius:var(--t-radius);--bs-dropdown-box-shadow:var(--t-shadow-md);--bs-dropdown-link-color:var(--t-text);--bs-dropdown-link-hover-color:var(--t-text);--bs-dropdown-link-hover-bg:var(--t-hover);--bs-dropdown-link-active-color:var(--t-on-primary);--bs-dropdown-link-active-bg:var(--t-primary);--bs-dropdown-link-disabled-color:var(--t-text-faint);--bs-dropdown-header-color:var(--t-text-muted);--bs-dropdown-divider-bg:var(--t-border-soft)}
.modal{--bs-modal-bg:var(--t-elevated);--bs-modal-color:var(--t-text);--bs-modal-border-color:var(--t-border);--bs-modal-border-radius:var(--t-radius-lg);--bs-modal-header-border-color:var(--t-border-soft);--bs-modal-footer-border-color:var(--t-border-soft);--bs-modal-box-shadow:var(--t-shadow-lg)}
.modal-backdrop{--bs-backdrop-bg:var(--t-ink)}
.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-bg:var(--t-elevated);--bs-offcanvas-color:var(--t-text);--bs-offcanvas-border-color:var(--t-border)}
.popover{--bs-popover-bg:var(--t-elevated);--bs-popover-border-color:var(--t-border);--bs-popover-header-bg:var(--t-bg-soft);--bs-popover-header-color:var(--t-heading);--bs-popover-body-color:var(--t-text);--bs-popover-border-radius:var(--t-radius)}
.tooltip{--bs-tooltip-bg:var(--t-ink);--bs-tooltip-color:var(--t-surface);--bs-tooltip-border-radius:var(--t-radius-sm)}
.progress,.progress-stacked{--bs-progress-bg:color-mix(in srgb,var(--t-ink) 10%,var(--t-card));--bs-progress-bar-bg:var(--t-primary);--bs-progress-bar-color:var(--t-on-primary);--bs-progress-border-radius:var(--t-radius-pill)}
.accordion{--bs-accordion-bg:var(--t-card);--bs-accordion-color:var(--t-text);--bs-accordion-border-color:var(--t-border);--bs-accordion-border-radius:var(--t-radius);--bs-accordion-btn-color:var(--t-heading);--bs-accordion-btn-bg:var(--t-card);--bs-accordion-active-color:var(--t-primary-on-subtle);--bs-accordion-active-bg:var(--t-primary-subtle);--bs-accordion-btn-focus-box-shadow:var(--t-focus)}
.toast{--bs-toast-bg:var(--t-elevated);--bs-toast-color:var(--t-text);--bs-toast-border-color:var(--t-border);--bs-toast-header-bg:var(--t-bg-soft);--bs-toast-header-color:var(--t-heading)}
.spinner-border,.spinner-grow{color:var(--t-primary)}
.carousel{--bs-carousel-indicator-active-bg:var(--t-primary)}
.carousel-indicators [data-bs-target]{border-top-width:11px;border-bottom-width:11px}
.navbar{--bs-navbar-color:var(--t-text-muted);--bs-navbar-hover-color:var(--t-primary-text);--bs-navbar-active-color:var(--t-primary-text)}
.blockquote-footer{color:var(--t-text-muted)}
hr{border-color:var(--t-border);opacity:1}
.border{border-color:var(--t-border) !important}
.border-primary{border-color:var(--t-primary-line) !important}
.border-secondary{border-color:var(--t-secondary-text) !important}
.border-success{border-color:var(--t-success-text) !important}
.border-info{border-color:var(--t-info-text) !important}
.border-warning{border-color:var(--t-warning-text) !important}
.border-danger{border-color:var(--t-danger-text) !important}
.border-dark{border-color:var(--t-ink) !important}
.border-light{border-color:var(--t-border) !important}
.border-top,.border-bottom,.border-start,.border-end{border-color:var(--t-border) !important}
.bg-light{background-color:var(--t-light) !important}
.bg-dark{background-color:var(--t-ink) !important}
.bg-body{background-color:var(--t-bg) !important}
.bg-body-secondary{background-color:var(--t-bg-soft) !important}
.bg-body-tertiary{background-color:var(--t-bg-soft) !important}
.text-body{color:var(--t-text) !important}
.text-body-secondary,.text-muted{color:var(--t-text-muted) !important}
.text-body-tertiary{color:var(--t-text-faint) !important}
.text-black{color:var(--t-heading) !important}
.text-primary{color:var(--t-primary-text) !important}
.text-secondary{color:var(--t-secondary-text) !important}
.text-success{color:var(--t-success-text) !important}
.text-info{color:var(--t-info-text) !important}
.text-warning{color:var(--t-warning-text) !important}
.text-danger{color:var(--t-danger-text) !important}
.text-dark{color:var(--t-ink) !important}
.text-light{color:var(--t-light) !important}
[data-bs-theme="dark"] .text-primary{color:var(--t-primary) !important}
[data-bs-theme="dark"] .text-secondary{color:var(--t-accent) !important}
[data-bs-theme="dark"] .text-success{color:var(--t-success-lift) !important}
[data-bs-theme="dark"] .text-info{color:var(--t-info-lift) !important}
[data-bs-theme="dark"] .text-warning{color:var(--t-warning-lift) !important}
[data-bs-theme="dark"] .text-danger{color:var(--t-danger-lift) !important}
[data-bs-theme="dark"] .text-dark{color:var(--t-text) !important}
[data-bs-theme="dark"] .text-black{color:var(--t-heading) !important}
body{background:var(--t-bg);color:var(--t-text);font-family:var(--t-font);font-size:var(--t-body-size);font-weight:var(--t-body-weight);letter-spacing:var(--t-body-tracking);line-height:var(--t-leading);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6{font-family:var(--t-font-heading);color:var(--t-heading);font-weight:var(--t-heading-weight);line-height:var(--t-heading-leading);letter-spacing:var(--t-heading-tracking)}
h1,.h1{font-size:calc(var(--t-h1) * var(--t-heading-scale))}
h2,.h2{font-size:calc(var(--t-h2) * var(--t-heading-scale))}
h3,.h3{font-size:calc(var(--t-h3) * var(--t-heading-scale))}
h4,.h4{font-size:calc(var(--t-h4) * var(--t-heading-scale))}
h5,.h5{font-size:calc(var(--t-h5) * var(--t-heading-scale));font-weight:var(--t-weight-semibold)}
h6,.h6{font-size:calc(var(--t-h6) * var(--t-heading-scale));font-weight:var(--t-weight-semibold)}
h5,.h5,h6,.h6{letter-spacing:0}
.display-1,.display-2,.display-3,.display-4,.display-5,.display-6{letter-spacing:calc(var(--t-heading-tracking) * 1.4);line-height:1.1}
.table,.t-mono,.font-tabular{font-variant-numeric:tabular-nums}
a{color:var(--t-link);text-underline-offset:.18em;text-decoration-thickness:from-font;transition:color var(--t-dur) var(--t-ease),text-decoration-color var(--t-dur) var(--t-ease)}
a:hover,a:focus-visible{color:var(--t-link-hover);text-decoration:none}
a[class*="t-color-"]:hover,a[class*="t-color-"]:focus-visible{color:var(--t-link-hover)}
a.text-decoration-none:not(.btn):not(.nav-link):not(.navbar-brand):not(.dropdown-item):not(.page-link):not(.badge):not(.list-group-item):hover,a.text-decoration-none:not(.btn):not(.nav-link):not(.navbar-brand):not(.dropdown-item):not(.page-link):not(.badge):not(.list-group-item):focus-visible{text-decoration:underline !important;text-underline-offset:.18em;text-decoration-thickness:from-font}
html.prism-switching *,html.prism-switching *::before,html.prism-switching *::after{transition:background-color var(--t-dur-slow) var(--t-ease),color var(--t-dur-slow) var(--t-ease),border-color var(--t-dur-slow) var(--t-ease),box-shadow var(--t-dur-slow) var(--t-ease),fill var(--t-dur-slow) var(--t-ease),stroke var(--t-dur-slow) var(--t-ease)}
@media (prefers-reduced-motion:reduce){html.prism-switching *,html.prism-switching *::before,html.prism-switching *::after{transition:none}
}
hr{border-color:var(--t-border);opacity:1}
:not(pre)>code{color:var(--t-accent-on-subtle);background:var(--t-accent-subtle);border:1px solid color-mix(in srgb,var(--t-accent) 20%,transparent);border-radius:var(--t-radius-sm);padding:0.1em 0.35em;font-size:0.9em}
:is([class*="text-bg-"],.t-bg-primary,.t-bg-accent,.t-bg-ink,.t-bg-surface):not(pre)>code{color:inherit;background:transparent;border-color:color-mix(in srgb,currentColor 30%,transparent)}
pre code{color:inherit}
mark,.mark{border-radius:var(--t-radius-sm);padding:0.1em 0.3em}
.t-bg-primary:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6),.t-bg-accent:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6),.t-bg-ink:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6),.t-bg-surface:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6),.bg-primary:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6),.bg-secondary:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6),.bg-success:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6),.bg-info:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6),.bg-warning:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6),.bg-danger:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6),.bg-dark:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6),[class*="text-bg-"]:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6){color:inherit}
.logo-mark{color:var(--t-text-faint);text-decoration:none;opacity:.75;transition:color var(--t-dur) var(--t-ease),opacity var(--t-dur) var(--t-ease),transform var(--t-dur) var(--t-ease)}
.logo-mark:hover,.logo-mark:focus-visible{color:var(--t-primary-text);opacity:1;transform:scale(1.06);text-decoration:none}
@media (prefers-reduced-motion:reduce){.logo-mark:hover,.logo-mark:focus-visible{transform:none}
}
.app-footer a:not(.btn){text-decoration:none;transition:color var(--t-dur) var(--t-ease)}
.app-footer a:not(.btn):hover,.app-footer a:not(.btn):focus-visible{color:var(--t-primary-text);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}
.t-bg-primary code,.t-bg-accent code,.t-bg-ink code,.t-bg-surface code,.text-bg-primary code,.text-bg-secondary code,.text-bg-success code,.text-bg-info code,.text-bg-warning code,.text-bg-danger code,.text-bg-light code,.text-bg-dark code,.bg-primary code,.bg-secondary code,.bg-success code,.bg-info code,.bg-warning code,.bg-danger code,.bg-dark code,.btn code,.alert code,.list-group-item.active code{color:inherit}
kbd{background:var(--t-ink);color:var(--t-surface);border-radius:var(--t-radius-xs)}
pre{color:var(--t-text);max-width:100%;overflow-x:auto}
::selection{background:var(--t-primary);color:var(--t-on-primary)}
:focus-visible{outline:2px solid var(--t-primary);outline-offset:2px}
.nav-link{border-radius:var(--t-radius-sm);transition:color var(--t-dur) var(--t-ease),background-color var(--t-dur) var(--t-ease),box-shadow var(--t-dur) var(--t-ease)}
.nav-link:not(.active):not(.disabled):hover,.nav-link:not(.active):not(.disabled):focus-visible{background-color:var(--t-hover);color:var(--t-heading)}
.nav-tabs .nav-link:not(.active):not(.disabled):hover{background-color:var(--t-hover)}
.app-header{background:var(--t-navbar-bg);color:var(--t-navbar-text);border-bottom:1px solid var(--t-navbar-border)}
.app-header .navbar-brand{color:var(--t-heading);font-weight:var(--t-weight-bold);transition:color var(--t-dur) var(--t-ease)}
.app-header .navbar-brand:hover,.app-header .navbar-brand:focus-visible{color:var(--t-primary-text)}
.app-header .nav-link{color:var(--t-text-muted)}
.app-header .nav-link:not(.active):not(.disabled):hover,.app-header .nav-link:not(.active):not(.disabled):focus-visible{background-color:var(--t-hover);color:var(--t-heading)}
.app-header .nav-link.active{color:var(--t-primary-text);font-weight:var(--t-weight-semibold)}
.app-sidebar{background:var(--t-sidebar-bg);color:var(--t-sidebar-text);border-right:1px solid var(--t-sidebar-border)}
.app-sidebar .nav-link{color:var(--t-sidebar-text);border-radius:var(--t-radius);padding:0.55rem 0.85rem;display:flex;align-items:center;gap:0.65rem;font-weight:var(--t-weight-medium);transition:background-color var(--t-dur) var(--t-ease),color var(--t-dur) var(--t-ease)}
.app-sidebar .nav-link i{color:var(--t-sidebar-muted);font-size:1.05rem}
.app-sidebar .nav-link:not(.active):not(.disabled):hover{background:var(--t-sidebar-hover);color:var(--t-sidebar-text)}
.app-sidebar .nav-link:not(.active):not(.disabled):hover i{color:var(--t-sidebar-text)}
.app-sidebar .nav-link.active{background:var(--t-sidebar-active);color:var(--t-sidebar-active-text)}
.app-sidebar .nav-link.active i{color:var(--t-sidebar-active-text)}
.app-sidebar .nav-link.disabled{color:var(--t-sidebar-muted);opacity:0.65}
.app-sidebar .sidebar-heading{color:var(--t-sidebar-muted);font-size:var(--t-text-xs);font-weight:var(--t-weight-bold);text-transform:uppercase;letter-spacing:0.08em}
.app-footer{background:var(--t-card);color:var(--t-text-muted);border-top:1px solid var(--t-border)}
body,.card,.btn,.form-control,.form-select,.table,.app-sidebar,.app-header,.app-footer{transition:background-color var(--t-dur-slow) var(--t-ease),border-color var(--t-dur-slow) var(--t-ease),color var(--t-dur-slow) var(--t-ease)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none !important;animation:none !important}
}
.t-surface{background:var(--t-card);color:var(--t-text);border-radius:var(--t-radius-lg)}
.min-width-0{min-width:0}
[hidden]{display:none !important}
.t-stars{position:relative;display:inline-block;--t-star-fill:100%;color:color-mix(in srgb,var(--t-warning-text) 30%,transparent);letter-spacing:.06em;line-height:1;vertical-align:-.06em;white-space:nowrap}
.t-stars>span{position:absolute;inset-block:0;inset-inline-start:0;overflow:hidden;width:var(--t-star-fill);color:var(--t-warning-text)}
:is(a,button).text-decoration-none:hover:is(h2,h3,h4,h5,h6,.h4,.h5,.h6,.card-title),:is(a,button).text-decoration-none:focus-visible:is(h2,h3,h4,h5,h6,.h4,.h5,.h6,.card-title){color:var(--t-primary-text);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.18em}
:is(a,button).text-decoration-none:hover .t-panel,:is(a,button).text-decoration-none:focus-visible .t-panel{border-color:var(--t-primary-border);box-shadow:var(--t-shadow-md)}
:is(a,button).text-decoration-none{transition:color var(--t-dur) var(--t-ease)}
.t-panel{background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--t-radius-lg);box-shadow:var(--t-shadow-sm)}
.t-elevated{background:var(--t-elevated);box-shadow:var(--t-shadow-lg);border-radius:var(--t-radius-lg)}
.t-muted{color:var(--t-text-muted)}
.t-faint{color:var(--t-text-faint)}
.t-mono{font-family:var(--t-font-mono)}
.t-bg-primary{background:var(--t-primary);color:var(--t-on-primary)}
.t-bg-accent{background:var(--t-accent);color:var(--t-on-accent)}
.t-bg-ink{background:var(--t-ink);color:var(--t-surface)}
.t-bg-surface{background:var(--t-surface);color:var(--t-ink)}
.t-bg-soft{background:var(--t-bg-soft);color:var(--t-text)}
.t-ring:focus-visible{outline:none;box-shadow:var(--t-focus)}
.position-relative>.badge.position-absolute,.position-relative>.position-absolute.rounded-circle{z-index:2}
.link-primary{color:var(--t-primary-text) !important}
.link-secondary{color:var(--t-secondary-on-subtle) !important}
.link-success{color:var(--t-success-on-subtle) !important}
.link-info{color:var(--t-info-on-subtle) !important}
.link-warning{color:var(--t-warning-on-subtle) !important}
.link-danger{color:var(--t-danger-on-subtle) !important}
.link-body-emphasis{color:var(--t-heading) !important}
:root{--t-mix-mark:30%;--t-mark-primary:color-mix(in srgb,var(--t-primary) var(--t-mix-mark),var(--t-card));--t-mark-accent:color-mix(in srgb,var(--t-accent) var(--t-mix-mark),var(--t-card));--t-mark-support:color-mix(in srgb,var(--t-support) var(--t-mix-mark),var(--t-card));--t-mark-neutral:color-mix(in srgb,var(--t-ink) var(--t-mix-mark),var(--t-card));--t-mark:var(--t-mark-primary);--t-mark-height:0.34em;--t-mark-lift:0.02em}
.t-mark,.t-mark-full,.t-mark-block{-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-inline:0.12em;border-radius:var(--t-radius-sm);-webkit-print-color-adjust:exact;print-color-adjust:exact}
.t-mark{font-weight:var(--t-weight-bold);background-image:linear-gradient(var(--t-mark),var(--t-mark));background-repeat:no-repeat;background-size:100% var(--t-mark-height);background-position:0 calc(100% - var(--t-mark-lift))}
.t-mark-thin{--t-mark-height:0.14em;--t-mark-lift:0.02em}
.t-mark-tall{--t-mark-height:0.58em}
.t-mark-clear{--t-mark-height:0.1em;--t-mark-lift:-0.08em}
.t-mark-accent{--t-mark:var(--t-mark-accent)}
.t-mark-support{--t-mark:var(--t-mark-support)}
.t-mark-neutral{--t-mark:var(--t-mark-neutral)}
.t-mark-soft{--t-mark:var(--t-primary-subtle)}
.t-mark-solid{--t-mark:var(--t-primary)}
.t-mark-ink{--t-mark:var(--t-ink)}
.t-mark-full{background:var(--t-primary-subtle);color:var(--t-primary-on-subtle)}
.t-mark-full.t-mark-accent{background:var(--t-accent-subtle);color:var(--t-accent-on-subtle)}
.t-mark-full.t-mark-soft{background:var(--t-bg-soft);color:var(--t-text)}
.t-mark-block{background:var(--t-primary);color:var(--t-on-primary);padding-inline:0.22em}
.t-mark-block.t-mark-accent{background:var(--t-accent);color:var(--t-on-accent)}
.t-mark-block.t-mark-ink{background:var(--t-ink);color:var(--t-surface)}
.dropdown-menu-dark{--bs-dropdown-bg:var(--t-ink);--bs-dropdown-color:var(--t-surface);--bs-dropdown-border-color:color-mix(in srgb,#FFFFFF 14%,var(--t-ink));--bs-dropdown-link-color:var(--t-surface);--bs-dropdown-link-hover-color:var(--t-surface);--bs-dropdown-link-hover-bg:color-mix(in srgb,#FFFFFF 10%,var(--t-ink));--bs-dropdown-link-active-color:var(--t-on-primary);--bs-dropdown-link-active-bg:var(--t-primary);--bs-dropdown-header-color:color-mix(in srgb,var(--t-surface) 62%,var(--t-ink));--bs-dropdown-divider-bg:color-mix(in srgb,#FFFFFF 14%,var(--t-ink))}
.btn-link:hover,.btn-link:focus-visible{text-decoration:none}
.t-code-wrap{position:relative}
.t-code-wrap>.t-copy{position:absolute;top:0.5rem;right:0.5rem;z-index:2;opacity:0;transition:opacity var(--t-dur) var(--t-ease)}
.t-code-wrap:hover>.t-copy,.t-code-wrap:focus-within>.t-copy{opacity:1}
@media (hover:none){.t-code-wrap>.t-copy{opacity:1}
}
@media (prefers-reduced-motion:reduce){.t-code-wrap>.t-copy{transition:none}
}
.bb-eyebrow{font-size:var(--t-text-xs);font-weight:var(--t-weight-bold);text-transform:uppercase;letter-spacing:0.1em;color:var(--t-text-faint)}
:is(.text-bg-primary,.text-bg-secondary,.text-bg-success,.text-bg-danger,.text-bg-warning,.text-bg-info,.text-bg-light,.text-bg-dark,.t-bg-primary,.t-bg-accent,.t-bg-ink,.t-bg-surface) .bb-eyebrow{color:inherit}
.app-sidebar .bb-eyebrow{color:var(--t-sidebar-muted)}
:is(a,button).badge,a[class*="text-bg-"],a:is(.t-bg-primary,.t-bg-accent,.t-bg-ink,.t-bg-surface,.t-bg-soft){transition:box-shadow var(--t-dur) var(--t-ease)}
:is(a,button).badge:hover,:is(a,button).badge:focus-visible,a[class*="text-bg-"]:hover,a[class*="text-bg-"]:focus-visible,a:is(.t-bg-primary,.t-bg-accent,.t-bg-ink,.t-bg-surface,.t-bg-soft):hover,a:is(.t-bg-primary,.t-bg-accent,.t-bg-ink,.t-bg-surface,.t-bg-soft):focus-visible{box-shadow:inset 0 0 0 100vmax color-mix(in srgb,currentColor 14%,transparent)}
a.text-decoration-none:hover:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6),a.text-decoration-none:focus-visible:is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6){text-decoration:underline;text-underline-offset:0.15em}
@media (prefers-reduced-motion:reduce){:is(a,button).badge{transition:none}
}
/*! * THEME · BONE — warm paper,quiet minimal * --------------------------------------------------------------------------- * Bone #F2EFEA paper / page background * Onyx #0D0D0D primary / ink * Rust #C15A2B accent * Fern #14532D success * Slate #1E3A5F info * Honey #E0A800 warning * * The only theme that tints the page itself:--t-paper makes the background * bone instead of white,so cards read as raised paper rather than flat panels. * Use for:documentation,long-form reading,product pages. * * Link AFTER theme-system.css. Link only one theme file at a time. */:root,[data-theme="bone"]{--t-primary:#0D0D0D;--t-primary-rgb:13,13,13;--t-on-primary:#F2EFEA;--t-primary-text:#0D0D0D;--t-primary-press-to:var(--t-ink);--t-accent:#C15A2B;--t-accent-rgb:193,90,43;--t-on-accent:#000000;--t-ink:#0D0D0D;--t-ink-rgb:13,13,13;--t-surface:#E5E0D8;--t-support:#C15A2B;--t-haze:#F2EFEA;--t-paper:#F2EFEA;--t-success:#14532D;--t-success-rgb:20,83,45;--t-info:#1E3A5F;--t-info-rgb:30,58,95;--t-warning:#E0A800;--t-warning-rgb:224,168,0;--t-danger:#C15A2B;--t-danger-rgb:193,90,43;--t-on-success:#F2EFEA;--t-on-info:#F2EFEA;--t-on-warning:#0D0D0D;--t-on-danger:#000000;--t-primary-shade:var(--t-surface);--t-accent-shade:#FFFFFF;--t-success-shade:var(--t-ink);--t-info-shade:var(--t-surface);--t-warning-shade:#FFFFFF;--t-danger-shade:#FFFFFF;--t-primary-lift:#E6E2DA;--t-accent-lift:#E08A5C;--t-success-lift:#6C8E75;--t-info-lift:#7A8697;--t-warning-lift:#E0A800;--t-danger-lift:#C8754E}
/*! * FONT PAIR · MINIMAL — Manrope + Manrope * --------------------------------------------------------------------------- * One family,separated by weight alone * * WHY THIS PAIR WORKS * A pairing does not have to be two families. Manrope has enough weight * range and a semi-geometric skeleton that stays crisp from 12 to 60px,so * hierarchy comes from size and weight rather than contrast of voice. * Fewest network requests,least that can go wrong,and it never dates. * * WHAT HAD TO BE TUNED * Because heading and body are the same face,the gap has to be carved * out:headings at 800 against a 400 body,with firm negative tracking. * * Link AFTER theme-system.css. Link only one pair file at a time. * A pair is independent of the colour theme — mix any pair with any theme. */:root,[data-font="minimal"]{--t-font-heading:'Manrope','Manrope Fallback',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--t-font:'Manrope','Manrope Fallback',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--t-font-mono:'JetBrains Mono','JetBrains Mono Fallback',ui-monospace,SFMono-Regular,Menlo,monospace;--t-heading-weight:800;--t-heading-tracking:-0.024em;--t-heading-leading:1.2;--t-heading-scale:1;--t-body-weight:400;--t-body-size:0.975rem;--t-body-tracking:0;--t-leading:1.6}
/*! * WEBFONT · MINIMAL * --------------------------------------------------------------------------- * The faces this pairing needs,served from this repository rather than from * fonts.googleapis.com. Written by tools/fetch-vendor.js from * https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap * and reduced to the latin and latin-ext subsets,which is everything the * pages here can render. * * No page links this file. tools/build-css.js folds it into every stylesheet * that carries the pair,and a face is fetched only once text is set in it. * * After the faces,one '<Family>Fallback' face per family:a system font * with size-adjust and the metric overrides set from the two fonts' own * tables,so that while the webfont is on its way the text takes up the * space it will take up when it arrives,and the swap moves nothing. * * The typefaces keep their own licence — see THIRD-PARTY.md. Moving a file * does not change who owns it. * --------------------------------------------------------------------------- */ @font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url("fonts/webfonts/jetbrains-mono-latin-ext-c8h-btv.woff2") format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url("fonts/webfonts/jetbrains-mono-latin-AcnlIJe.woff2") format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url("fonts/webfonts/jetbrains-mono-latin-ext-c8h-btv.woff2") format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url("fonts/webfonts/jetbrains-mono-latin-AcnlIJe.woff2") format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url("fonts/webfonts/manrope-latin-ext-PPaTnwi.woff2") format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url("fonts/webfonts/manrope-latin-aA_waSK.woff2") format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url("fonts/webfonts/manrope-latin-ext-PPaTnwi.woff2") format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url("fonts/webfonts/manrope-latin-aA_waSK.woff2") format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url("fonts/webfonts/manrope-latin-ext-PPaTnwi.woff2") format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url("fonts/webfonts/manrope-latin-aA_waSK.woff2") format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url("fonts/webfonts/manrope-latin-ext-PPaTnwi.woff2") format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url("fonts/webfonts/manrope-latin-aA_waSK.woff2") format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:800;font-display:swap;src:url("fonts/webfonts/manrope-latin-ext-PPaTnwi.woff2") format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Manrope';font-style:normal;font-weight:800;font-display:swap;src:url("fonts/webfonts/manrope-latin-aA_waSK.woff2") format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Manrope Fallback';src:local('Arial');size-adjust:100.20%;ascent-override:106.39%;descent-override:29.94%;line-gap-override:0.00%}
@font-face{font-family:'JetBrains Mono Fallback';src:local('Courier New');size-adjust:99.98%;ascent-override:102.02%;descent-override:30.00%;line-gap-override:0.00%}
/*! * SHAPE · ROUNDED — soft corners * --------------------------------------------------------------------------- * The default. A 10px base radius reads as friendly and current without * tipping into the pill-shaped look that dates a UI to a particular year. * * The scale is not linear:small elements need proportionally larger radii to * look equally rounded,so badges and inputs sit closer to the base than cards * and modals do. * * Link AFTER theme-system.css. Link only one shape file at a time. * Shape is independent of both the colour theme and the typeface pairing. */:root,[data-shape="rounded"]{--t-radius-xs:4px;--t-radius-sm:6px;--t-radius:10px;--t-radius-lg:14px;--t-radius-xl:20px;--t-radius-pill:50rem}
/*! * ICON SET · BOOTSTRAP ICONS (MIT) * --------------------------------------------------------------------------- * Ships with Bootstrap. Geometric,even stroke,very neutral. * * The page never writes a library class. It writes a SEMANTIC class:* * <i class="icon icon-home" aria-hidden="true"></i>* * and this file maps that name onto Bootstrap Icons's glyph. Swap the file and * every icon changes library without one edit to the markup. * * The font below is a SUBSET:60 glyphs,5.3 KB,down from * 127 KB for the full library. It is served from this repo,not a CDN,* so the icon axis adds no third-party request and cannot block first paint. * * Codepoints are extracted from the library's own stylesheet,never typed by * hand — see tools/gen-icons.js. The comment after each rule is the class the * library itself uses,so any mapping is one search away from being checked. * * Link AFTER theme-system.css. Link only one icon set at a time. */ @font-face{font-family:"prism-bootstrap";src:url("fonts/icons/bootstrap-sXCg_Q3.woff2") format("woff2");font-weight:normal;font-style:normal;font-display:block}
.icon{display:inline-block;width:1em;text-align:center;line-height:1;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;vertical-align:-0.125em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.icon::before{font-family:"prism-bootstrap" !important;font-weight:normal;font-style:normal}
.icon-home::before{content:"\f423"}
.icon-palette::before{content:"\f4b1"}
.icon-droplet::before{content:"\f30c"}
.icon-type::before{content:"\f5f7"}
.icon-shape::before{content:"\f1b6"}
.icon-spacing::before{content:"\f304"}
.icon-pointer::before{content:"\f403"}
.icon-input::before{content:"\f435"}
.icon-alert::before{content:"\f333"}
.icon-table::before{content:"\f5aa"}
.icon-signpost::before{content:"\f54a"}
.icon-layers::before{content:"\f45b"}
.icon-card::before{content:"\f225"}
.icon-images::before{content:"\f42b"}
.icon-window::before{content:"\f6cf"}
.icon-grid::before{content:"\f3f4"}
.icon-list::before{content:"\f478"}
.icon-code::before{content:"\f2c6"}
.icon-lock::before{content:"\f47b"}
.icon-sun::before{content:"\f5a2"}
.icon-moon::before{content:"\f496"}
.icon-check::before{content:"\f633"}
.icon-download::before{content:"\f30a"}
.icon-envelope::before{content:"\f32f"}
.icon-search::before{content:"\f52a"}
.icon-bell::before{content:"\f18a"}
.icon-user::before{content:"\f4e1"}
.icon-gear::before{content:"\f3e5"}
.icon-star::before{content:"\f588"}
.icon-heart::before{content:"\f417"}
.icon-trash::before{content:"\f5de"}
.icon-pencil::before{content:"\f4cb"}
.icon-calendar::before{content:"\f1f6"}
.icon-clock::before{content:"\f293"}
.icon-file::before{content:"\f392"}
.icon-copy::before{content:"\f759"}
.icon-folder::before{content:"\f3d7"}
.icon-graph-up::before{content:"\f673"}
.icon-bag::before{content:"\f171"}
.icon-cloud::before{content:"\f2c1"}
.icon-arrow-up::before{content:"\f145"}
.icon-arrow-down::before{content:"\f124"}
.icon-chevron-right::before{content:"\f285"}
.icon-plus::before{content:"\f64d"}
.icon-close::before{content:"\f659"}
.icon-rounded::before{content:"\f10b"}
.icon-square::before{content:"\f584"}
.icon-info::before{content:"\f431"}
.icon-access::before{content:"\f825"}
.icon-box::before{content:"\f1c8"}
.icon-play::before{content:"\f4f3"}
.icon-location::before{content:"\f3e8"}
.icon-phone::before{content:"\f5c1"}
.icon-chat::before{content:"\f24a"}
.icon-cart::before{content:"\f242"}
.icon-filter::before{content:"\f3e1"}
.icon-share::before{content:"\f52e"}
.icon-bookmark::before{content:"\f1a2"}
.icon-eye::before{content:"\f341"}
.icon-menu::before{content:"\f479"}
/*! * LAYOUT · WIDE — edge to edge * --------------------------------------------------------------------------- * The default. Content fills the viewport up to a generous ceiling,so wide * screens are used for more columns rather than more empty margin. Best for * dashboards,tables and anything with a sidebar. * * Link AFTER theme-system.css. Link only one layout file at a time. */:root,[data-layout="wide"]{--t-container-max:1560px;--t-page-max:none;--t-page-frame:transparent}
@media (min-width:768px){[data-layout="wide"] .container-xxl,[data-layout="wide"] .container-fluid{padding-inline:var(--t-space-5)}
}
@media (min-width:1200px){[data-layout="wide"] .container-xxl,[data-layout="wide"] .container-fluid{padding-inline:var(--t-space-7)}
}
@media (min-width:1400px){[data-layout="wide"] .container-xxl{max-width:var(--t-container-max)}
}
/*! * PICKER * --------------------------------------------------------------------------- * The appearance picker's own rules:the floating button in the bottom right * corner and the panel it opens. tools/build-css.js puts this into every * stylesheet it writes,so the picker never has to write CSS into a page. * * The swatch colours are not here. build-css.js generates them from each * theme file's own seeds (--t-primary,--t-accent,--t-surface),so a new theme * gets its swatch with no second copy of its palette anywhere. * --------------------------------------------------------------------------- */ .pr-fab{position:fixed;right:20px;bottom:20px;z-index:1080;width:52px;height:52px;border-radius:50%;border:1px solid var(--t-border-strong);background:var(--t-primary);color:var(--t-on-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--t-shadow-lg);transition:transform var(--t-dur) var(--t-ease)}
.pr-fab:hover{transform:scale(1.06)}
.pr-fab i{font-size:22px;line-height:1}
.pr-panel{position:fixed;right:20px;bottom:84px;z-index:1080;width:326px;max-width:calc(100vw - 40px);background:var(--t-elevated);color:var(--t-text);border:1px solid var(--t-border);border-radius:var(--t-radius-lg);box-shadow:var(--t-shadow-lg);overflow:hidden;display:flex;flex-direction:column;max-height:min(80vh,660px);opacity:0;visibility:hidden;transform:translateY(10px) scale(.98);transition:opacity var(--t-dur) var(--t-ease),transform var(--t-dur) var(--t-ease),visibility var(--t-dur)}
.pr-panel.is-open{opacity:1;visibility:visible;transform:none}
.pr-head{padding:13px 16px;border-bottom:1px solid var(--t-border-soft);background:var(--t-bg-soft);flex:0 0 auto}
.pr-head strong{display:block;font-size:.9375rem;color:var(--t-heading);font-family:var(--t-font-heading)}
.pr-head span{display:block;font-size:.75rem;color:var(--t-text-muted);margin-top:2px}
.pr-tabs{display:flex;gap:2px;padding:8px 10px 0;flex:0 0 auto}
.pr-tab{flex:1;padding:7px 4px;border:0;border-bottom:2px solid transparent;background:none;color:var(--t-text-muted);font-size:.75rem;font-weight:600;cursor:pointer;font-family:inherit}
.pr-tab[aria-selected="true"]{color:var(--t-primary-text);border-bottom-color:var(--t-primary-line)}
.pr-pane{padding:10px;overflow-y:auto;flex:1 1 auto;min-height:0}
.pr-pane[hidden]{display:none}
.pr-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:1px solid transparent;border-radius:var(--t-radius);background:none;color:var(--t-text);cursor:pointer;text-align:left;font-family:inherit;transition:background var(--t-dur) var(--t-ease),border-color var(--t-dur) var(--t-ease)}
.pr-item:hover{background:var(--t-bg-soft)}
.pr-item[aria-checked="true"]{border-color:var(--t-primary-line);background:var(--t-primary-subtle)}
.pr-dots{display:flex;flex:0 0 auto}
.pr-dots i{display:block;width:16px;height:16px;border-radius:50%;border:2px solid var(--t-elevated)}
.pr-dots i+i{margin-left:-7px}
.pr-aa{flex:0 0 auto;width:30px;text-align:center;font-size:1.05rem;line-height:1;color:var(--t-heading)}
.pr-shape{flex:0 0 auto;width:30px;display:flex;justify-content:center}
.pr-shape span{width:18px;height:18px;background:var(--t-primary);display:block}
.pr-shape.is-round span{border-radius:6px}
.pr-layout{align-items:center}
.pr-layout span{width:22px;height:14px;border-radius:2px}
.pr-layout.is-boxed span{width:13px;box-shadow:0 0 0 4px var(--t-border)}
.pr-meta{flex:1 1 auto;min-width:0}
.pr-meta b{display:block;font-size:.8125rem;font-weight:600;line-height:1.35}
.pr-meta em{display:block;font-size:.6875rem;font-style:normal;color:var(--t-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pr-check{flex:0 0 auto;width:16px;color:var(--t-primary-text);opacity:0;font-size:15px}
.pr-item[aria-checked="true"] .pr-check{opacity:1}
.pr-foot{padding:10px;border-top:1px solid var(--t-border-soft);background:var(--t-bg-soft);flex:0 0 auto}
.pr-modes{display:flex;gap:6px;background:var(--t-card);border:1px solid var(--t-border);border-radius:var(--t-radius);padding:3px}
.pr-mode{flex:1;padding:6px 8px;border:0;border-radius:calc(var(--t-radius) - 4px);background:none;color:var(--t-text-muted);font-size:.75rem;font-weight:600;cursor:pointer;font-family:inherit;transition:background var(--t-dur) var(--t-ease),color var(--t-dur) var(--t-ease)}
.pr-mode[aria-pressed="true"]{background:var(--t-primary);color:var(--t-on-primary)}
.pr-code{margin:10px 0 0;padding:8px 10px;border-radius:var(--t-radius-sm);background:var(--t-card);border:1px solid var(--t-border);font-family:var(--t-font-mono);font-size:.6875rem;color:var(--t-text-muted);word-break:break-all;line-height:1.7}
.pr-code b{color:var(--t-primary-text);font-weight:600}
@media (prefers-reduced-motion:reduce){.pr-fab,.pr-panel,.pr-item,.pr-mode{transition:none}
}
.pr-version{font-style:normal;font-weight:400;opacity:.7}
.pr-dots[data-pr-theme="bone"] i:nth-child(1){background:#0D0D0D}
.pr-dots[data-pr-theme="bone"] i:nth-child(2){background:#C15A2B}
.pr-dots[data-pr-theme="bone"] i:nth-child(3){background:#E5E0D8}
.pr-dots[data-pr-theme="fern"] i:nth-child(1){background:#14532D}
.pr-dots[data-pr-theme="fern"] i:nth-child(2){background:#E0A800}
.pr-dots[data-pr-theme="fern"] i:nth-child(3){background:#F2EFEA}
.pr-dots[data-pr-theme="harbor"] i:nth-child(1){background:#134C65}
.pr-dots[data-pr-theme="harbor"] i:nth-child(2){background:#487F86}
.pr-dots[data-pr-theme="harbor"] i:nth-child(3){background:#F0ECDA}
.pr-dots[data-pr-theme="midnight"] i:nth-child(1){background:#222C49}
.pr-dots[data-pr-theme="midnight"] i:nth-child(2){background:#525266}
.pr-dots[data-pr-theme="midnight"] i:nth-child(3){background:#E8E1D0}
.pr-dots[data-pr-theme="onyx"] i:nth-child(1){background:#0D0D0D}
.pr-dots[data-pr-theme="onyx"] i:nth-child(2){background:#E0A800}
.pr-dots[data-pr-theme="onyx"] i:nth-child(3){background:#F2EFEA}
.pr-dots[data-pr-theme="royal-gold"] i:nth-child(1){background:#D1A054}
.pr-dots[data-pr-theme="royal-gold"] i:nth-child(2){background:#6B1E2F}
.pr-dots[data-pr-theme="royal-gold"] i:nth-child(3){background:#F2EFEA}
.pr-dots[data-pr-theme="rust"] i:nth-child(1){background:#C15A2B}
.pr-dots[data-pr-theme="rust"] i:nth-child(2){background:#1E3A5F}
.pr-dots[data-pr-theme="rust"] i:nth-child(3){background:#F2EFEA}
.pr-dots[data-pr-theme="sage"] i:nth-child(1){background:#8B9E82}
.pr-dots[data-pr-theme="sage"] i:nth-child(2){background:#14532D}
.pr-dots[data-pr-theme="sage"] i:nth-child(3){background:#C5BFAE}
.pr-dots[data-pr-theme="slate"] i:nth-child(1){background:#1E3A5F}
.pr-dots[data-pr-theme="slate"] i:nth-child(2){background:#E0A800}
.pr-dots[data-pr-theme="slate"] i:nth-child(3){background:#F2EFEA}
.pr-dots[data-pr-theme="terracotta"] i:nth-child(1){background:#C4694F}
.pr-dots[data-pr-theme="terracotta"] i:nth-child(2){background:#6B1E2F}
.pr-dots[data-pr-theme="terracotta"] i:nth-child(3){background:#E6CCB2}
/*! * UTILITIES — the classes that replace a style attribute * --------------------------------------------------------------------------- * Link this LAST,after the variable layer and after any page-local rules. * * That is not a preference. Every class in here replaces a declaration that * used to sit in a style attribute,and a style attribute beat every rule on * its element. Being last is what gives these the same standing without * reaching for !important. Put them earlier and a page's own rule quietly wins * — which is what happened to five coloured dots on the Motion page before * check-styles.js measured it. * * build-css.js appends this to every stylesheet it writes,so a page that * links a built file already has it in the right place. * --------------------------------------------------------------------------- */ .t-fill-primary{background:var(--t-primary);color:var(--t-on-primary)}
.t-fill-accent{background:var(--t-accent)}
.t-fill-ink{background:var(--t-ink);color:var(--t-surface)}
.t-fill-card{background:var(--t-card)}
.t-fill-soft{background:var(--t-bg-soft)}
.t-fill-primary-subtle{background:var(--t-primary-subtle)}
.t-fill-none{background:transparent}
.t-inherit{color:inherit}
.t-on-ink{color:var(--t-surface)}
.t-color-text{color:var(--t-text)}
.t-color-heading{color:var(--t-heading)}
.t-fs-2xs{font-size:0.62rem}
.t-fs-xs{font-size:var(--t-text-xs)}
.t-fs-sm{font-size:var(--t-text-sm)}
.t-fs-md{font-size:0.875rem}
.t-fs-lg{font-size:0.9375rem}
.t-fs-xl{font-size:1.0625rem}
.t-fs-micro{font-size:0.65rem}
.t-fs-tiny{font-size:0.7rem}
.t-fs-small{font-size:0.8rem}
.t-fw-bold{font-weight:700}
.t-tracking-wide{letter-spacing:0.08em}
.t-sq-20{width:1.25rem;height:1.25rem}
.t-sq-24{width:1.5rem;height:1.5rem}
.t-sq-28{width:1.75rem;height:1.75rem}
.t-sq-32{width:2rem;height:2rem}
.t-sq-36{width:2.25rem;height:2.25rem}
.t-sq-40{width:2.5rem;height:2.5rem}
.t-sq-44{width:2.75rem;height:2.75rem}
.t-sq-48{width:3rem;height:3rem}
.t-sq-56{width:3.5rem;height:3.5rem}
.t-w-48{width:3rem}
.t-w-88{width:5.5rem}
.t-w-128{width:8rem}
.t-w-12px{width:12px}
.t-w-quarter{width:25%}
.t-h-6px{height:6px}
.t-h-12px{height:12px}
.t-h-14px{height:14px}
.t-h-meter{height:0.35rem}
.t-h-48{height:3rem}
.t-h-56{height:3.5rem}
.t-minw-0{min-width:0}
.t-minw-64{min-width:4rem}
.t-minw-72{min-width:4.5rem}
.t-measure-32{max-width:32ch}
.t-measure-38{max-width:38ch}
.t-measure-44{max-width:44ch}
.t-measure-52{max-width:52ch}
.t-measure-60{max-width:60ch}
.t-measure-64{max-width:64ch}
.t-mw-32{max-width:32rem}
.t-mw-34{max-width:34rem}
.t-mw-44{max-width:44rem}
.t-cover{object-fit:cover}
.t-op-70{opacity:0.7}
.t-op-72{opacity:0.72}
.t-op-75{opacity:0.75}
.t-op-85{opacity:0.85}
.t-r-2px{border-radius:2px}
.t-ring-card{border:2px solid var(--t-card)}
.t-scrim-ink{background:linear-gradient(to top,rgba(var(--t-ink-rgb),0.92),transparent)}
.t-stars-100{--t-star-fill:100.00%}
.t-stars-98{--t-star-fill:98.00%}
.t-stars-92{--t-star-fill:92.00%}
.t-stars-90{--t-star-fill:90.00%}
.t-stars-80{--t-star-fill:80.00%}
