/* Microsoft Fluent Design System - MTB Tracker Theme */ /* Fluent Design Tokens */ :root { /* Color Palette */ --fluent-primary: #0078d4; --fluent-primary-hover: #106ebe; --fluent-primary-pressed: #005a9e; --fluent-primary-light: #deecf9; --fluent-text-primary: #323130; --fluent-text-secondary: #605e5c; --fluent-text-tertiary: #8a8886; --fluent-text-disabled: #a19f9d; --fluent-text-white: #ffffff; --fluent-bg-primary: #ffffff; --fluent-bg-secondary: #f3f2f1; --fluent-bg-tertiary: #faf9f8; --fluent-bg-quaternary: #f8f7f6; --fluent-surface-primary: #ffffff; --fluent-surface-secondary: #f3f2f1; --fluent-surface-stroke: #e1dfdd; --fluent-surface-stroke-flyout: #c8c6c4; --fluent-accent-colors: #0078d4; --fluent-success: #107c10; --fluent-warning: #ffb900; --fluent-error: #d13438; --fluent-info: #0078d4; /* Typography */ --fluent-font-family: 'Segoe UI', 'Segoe UI Web', -apple-system, BlinkMacSystemFont, 'Roboto', sans-serif; --fluent-font-size-caption: 12px; --fluent-font-size-body: 14px; --fluent-font-size-subtitle: 16px; --fluent-font-size-title-3: 20px; --fluent-font-size-title-2: 24px; --fluent-font-size-title-1: 32px; --fluent-font-size-large-title: 40px; --fluent-font-size-display: 68px; --fluent-font-weight-regular: 400; --fluent-font-weight-medium: 500; --fluent-font-weight-semibold: 600; --fluent-font-weight-bold: 700; /* Spacing */ --fluent-spacing-2xs: 2px; --fluent-spacing-xs: 4px; --fluent-spacing-s: 8px; --fluent-spacing-m: 12px; --fluent-spacing-l: 16px; --fluent-spacing-xl: 20px; --fluent-spacing-2xl: 24px; --fluent-spacing-3xl: 32px; --fluent-spacing-4xl: 40px; --fluent-spacing-5xl: 48px; /* Border Radius */ --fluent-border-radius-none: 0px; --fluent-border-radius-small: 2px; --fluent-border-radius-medium: 4px; --fluent-border-radius-large: 6px; --fluent-border-radius-xl: 8px; --fluent-border-radius-circular: 50%; /* Shadows - Fluent Depth System */ --fluent-shadow-2: 0px 1px 2px rgba(0, 0, 0, 0.14), 0px 0px 2px rgba(0, 0, 0, 0.12); --fluent-shadow-4: 0px 2px 4px rgba(0, 0, 0, 0.14), 0px 0px 2px rgba(0, 0, 0, 0.12); --fluent-shadow-8: 0px 4px 8px rgba(0, 0, 0, 0.14), 0px 0px 2px rgba(0, 0, 0, 0.12); --fluent-shadow-16: 0px 8px 16px rgba(0, 0, 0, 0.14), 0px 0px 2px rgba(0, 0, 0, 0.12); --fluent-shadow-32: 0px 16px 32px rgba(0, 0, 0, 0.14), 0px 0px 2px rgba(0, 0, 0, 0.12); --fluent-shadow-64: 0px 32px 64px rgba(0, 0, 0, 0.14), 0px 0px 2px rgba(0, 0, 0, 0.12); /* Motion */ --fluent-duration-ultra-fast: 50ms; --fluent-duration-faster: 100ms; --fluent-duration-fast: 150ms; --fluent-duration-normal: 200ms; --fluent-duration-gentle: 250ms; --fluent-duration-slow: 300ms; --fluent-duration-slower: 400ms; --fluent-duration-ultra-slow: 500ms; --fluent-curve-accelerate-max: cubic-bezier(1, 0, 1, 1); --fluent-curve-accelerate-mid: cubic-bezier(0.7, 0, 1, 0.5); --fluent-curve-accelerate-min: cubic-bezier(0.8, 0, 1, 0.2); --fluent-curve-decelerate-max: cubic-bezier(0, 0, 0, 1); --fluent-curve-decelerate-mid: cubic-bezier(0.1, 0.9, 0.2, 1); --fluent-curve-decelerate-min: cubic-bezier(0.33, 0, 0.1, 1); --fluent-curve-max-easy-ease: cubic-bezier(0.8, 0, 0.2, 1); --fluent-curve-easy-ease: cubic-bezier(0.33, 0, 0.67, 1); --fluent-curve-linear: cubic-bezier(0, 0, 1, 1); } /* Dark Mode Variables */ :root[data-theme="dark"] { --fluent-text-primary: #ffffff; --fluent-text-secondary: #c8c6c4; --fluent-text-tertiary: #a19f9d; --fluent-text-disabled: #797775; --fluent-bg-primary: #1b1a19; --fluent-bg-secondary: #201f1e; --fluent-bg-tertiary: #292827; --fluent-bg-quaternary: #323130; --fluent-surface-primary: #201f1e; --fluent-surface-secondary: #292827; --fluent-surface-stroke: #323130; --fluent-surface-stroke-flyout: #3b3a39; } /* Base Styles */ .fluent-theme { font-family: var(--fluent-font-family); font-size: var(--fluent-font-size-body); line-height: 1.4; color: var(--fluent-text-primary); background-color: var(--fluent-bg-primary); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .fluent-theme * { box-sizing: border-box; } /* Typography */ .fluent-display { font-size: var(--fluent-font-size-display); font-weight: var(--fluent-font-weight-semibold); line-height: 1.1; } .fluent-large-title { font-size: var(--fluent-font-size-large-title); font-weight: var(--fluent-font-weight-semibold); line-height: 1.2; } .fluent-title-1 { font-size: var(--fluent-font-size-title-1); font-weight: var(--fluent-font-weight-semibold); line-height: 1.25; } .fluent-title-2 { font-size: var(--fluent-font-size-title-2); font-weight: var(--fluent-font-weight-semibold); line-height: 1.3; } .fluent-title-3 { font-size: var(--fluent-font-size-title-3); font-weight: var(--fluent-font-weight-semibold); line-height: 1.3; } .fluent-subtitle { font-size: var(--fluent-font-size-subtitle); font-weight: var(--fluent-font-weight-regular); line-height: 1.4; } .fluent-body { font-size: var(--fluent-font-size-body); font-weight: var(--fluent-font-weight-regular); line-height: 1.4; } .fluent-caption { font-size: var(--fluent-font-size-caption); font-weight: var(--fluent-font-weight-regular); line-height: 1.3; } /* Layout Components */ .fluent-container { width: 100%; max-width: 1440px; margin: 0 auto; padding: 0 var(--fluent-spacing-l); } .fluent-grid { display: grid; gap: var(--fluent-spacing-l); } .fluent-flex { display: flex; gap: var(--fluent-spacing-m); } .fluent-flex-column { display: flex; flex-direction: column; gap: var(--fluent-spacing-m); } /* Command Bar (Navigation) */ .fluent-command-bar { background: var(--fluent-surface-primary); border-bottom: 1px solid var(--fluent-surface-stroke); height: 48px; display: flex; align-items: center; padding: 0 var(--fluent-spacing-l); box-shadow: var(--fluent-shadow-2); } .fluent-command-bar-brand { font-size: var(--fluent-font-size-subtitle); font-weight: var(--fluent-font-weight-semibold); color: var(--fluent-text-primary); text-decoration: none; margin-right: var(--fluent-spacing-3xl); } .fluent-command-bar-nav { display: flex; align-items: center; gap: var(--fluent-spacing-xl); margin-left: auto; } .fluent-command-bar-item { color: var(--fluent-text-secondary); text-decoration: none; font-size: var(--fluent-font-size-body); padding: var(--fluent-spacing-s) var(--fluent-spacing-m); border-radius: var(--fluent-border-radius-medium); transition: all var(--fluent-duration-normal) var(--fluent-curve-easy-ease); } .fluent-command-bar-item:hover { background: var(--fluent-bg-secondary); color: var(--fluent-text-primary); } .fluent-command-bar-item.active { color: var(--fluent-primary); background: var(--fluent-primary-light); } /* Cards */ .fluent-card { background: var(--fluent-surface-primary); border: 1px solid var(--fluent-surface-stroke); border-radius: var(--fluent-border-radius-large); padding: var(--fluent-spacing-l); box-shadow: var(--fluent-shadow-2); transition: all var(--fluent-duration-normal) var(--fluent-curve-easy-ease); } .fluent-card:hover { box-shadow: var(--fluent-shadow-4); border-color: var(--fluent-surface-stroke-flyout); } .fluent-card-header { margin-bottom: var(--fluent-spacing-l); } .fluent-card-title { font-size: var(--fluent-font-size-title-3); font-weight: var(--fluent-font-weight-semibold); color: var(--fluent-text-primary); margin: 0 0 var(--fluent-spacing-xs) 0; } .fluent-card-subtitle { font-size: var(--fluent-font-size-body); color: var(--fluent-text-secondary); margin: 0; } .fluent-card-content { color: var(--fluent-text-primary); } /* Metric Cards */ .fluent-metric-card { background: var(--fluent-surface-primary); border: 1px solid var(--fluent-surface-stroke); border-radius: var(--fluent-border-radius-large); padding: var(--fluent-spacing-l); text-align: center; transition: all var(--fluent-duration-normal) var(--fluent-curve-easy-ease); } .fluent-metric-card:hover { box-shadow: var(--fluent-shadow-4); transform: translateY(-2px); } .fluent-metric-value { font-size: var(--fluent-font-size-title-1); font-weight: var(--fluent-font-weight-semibold); color: var(--fluent-primary); margin: 0; } .fluent-metric-label { font-size: var(--fluent-font-size-caption); color: var(--fluent-text-secondary); margin: var(--fluent-spacing-xs) 0 0 0; text-transform: uppercase; letter-spacing: 0.5px; } .fluent-metric-change { font-size: var(--fluent-font-size-caption); margin-top: var(--fluent-spacing-xs); font-weight: var(--fluent-font-weight-medium); } .fluent-metric-change.positive { color: var(--fluent-success); } .fluent-metric-change.negative { color: var(--fluent-error); } .fluent-metric-change.neutral { color: var(--fluent-text-tertiary); } /* Buttons */ .fluent-button { font-family: var(--fluent-font-family); font-size: var(--fluent-font-size-body); font-weight: var(--fluent-font-weight-medium); border: 1px solid transparent; border-radius: var(--fluent-border-radius-medium); padding: var(--fluent-spacing-s) var(--fluent-spacing-l); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: var(--fluent-spacing-s); text-decoration: none; transition: all var(--fluent-duration-normal) var(--fluent-curve-easy-ease); min-height: 32px; outline: none; position: relative; overflow: hidden; } .fluent-button:focus-visible { outline: 2px solid var(--fluent-primary); outline-offset: 2px; } .fluent-button-primary { background: var(--fluent-primary); color: var(--fluent-text-white); } .fluent-button-primary:hover { background: var(--fluent-primary-hover); } .fluent-button-primary:active { background: var(--fluent-primary-pressed); } .fluent-button-secondary { background: var(--fluent-surface-primary); border-color: var(--fluent-surface-stroke); color: var(--fluent-text-primary); } .fluent-button-secondary:hover { background: var(--fluent-bg-secondary); border-color: var(--fluent-surface-stroke-flyout); } .fluent-button-secondary:active { background: var(--fluent-bg-tertiary); } .fluent-button-subtle { background: transparent; color: var(--fluent-text-primary); } .fluent-button-subtle:hover { background: var(--fluent-bg-secondary); } .fluent-button-subtle:active { background: var(--fluent-bg-tertiary); } /* Input Controls */ .fluent-input { font-family: var(--fluent-font-family); font-size: var(--fluent-font-size-body); background: var(--fluent-surface-primary); border: 1px solid var(--fluent-surface-stroke); border-radius: var(--fluent-border-radius-medium); padding: var(--fluent-spacing-s) var(--fluent-spacing-m); color: var(--fluent-text-primary); outline: none; transition: all var(--fluent-duration-normal) var(--fluent-curve-easy-ease); min-height: 32px; } .fluent-input:focus { border-color: var(--fluent-primary); box-shadow: 0 0 0 1px var(--fluent-primary); } .fluent-input::placeholder { color: var(--fluent-text-tertiary); } .fluent-select { font-family: var(--fluent-font-family); font-size: var(--fluent-font-size-body); background: var(--fluent-surface-primary); border: 1px solid var(--fluent-surface-stroke); border-radius: var(--fluent-border-radius-medium); padding: var(--fluent-spacing-s) var(--fluent-spacing-m); color: var(--fluent-text-primary); outline: none; transition: all var(--fluent-duration-normal) var(--fluent-curve-easy-ease); min-height: 32px; cursor: pointer; } .fluent-select:focus { border-color: var(--fluent-primary); box-shadow: 0 0 0 1px var(--fluent-primary); } /* Tables */ .fluent-table { width: 100%; border-collapse: collapse; background: var(--fluent-surface-primary); border-radius: var(--fluent-border-radius-large); overflow: hidden; box-shadow: var(--fluent-shadow-2); } .fluent-table th { background: var(--fluent-bg-secondary); padding: var(--fluent-spacing-m) var(--fluent-spacing-l); text-align: left; font-size: var(--fluent-font-size-body); font-weight: var(--fluent-font-weight-semibold); color: var(--fluent-text-primary); border-bottom: 1px solid var(--fluent-surface-stroke); } .fluent-table td { padding: var(--fluent-spacing-m) var(--fluent-spacing-l); border-bottom: 1px solid var(--fluent-surface-stroke); color: var(--fluent-text-primary); font-size: var(--fluent-font-size-body); } .fluent-table tr:hover { background: var(--fluent-bg-secondary); } .fluent-table tr:last-child td { border-bottom: none; } /* Progress Bar */ .fluent-progress { width: 100%; height: 4px; background: var(--fluent-bg-tertiary); border-radius: var(--fluent-border-radius-small); overflow: hidden; } .fluent-progress-fill { height: 100%; background: var(--fluent-primary); border-radius: var(--fluent-border-radius-small); transition: width var(--fluent-duration-gentle) var(--fluent-curve-easy-ease); } /* Badge */ .fluent-badge { display: inline-flex; align-items: center; font-size: var(--fluent-font-size-caption); font-weight: var(--fluent-font-weight-medium); padding: var(--fluent-spacing-xs) var(--fluent-spacing-s); border-radius: var(--fluent-border-radius-large); text-transform: uppercase; letter-spacing: 0.5px; } .fluent-badge-primary { background: var(--fluent-primary-light); color: var(--fluent-primary); } .fluent-badge-success { background: rgba(16, 124, 16, 0.1); color: var(--fluent-success); } .fluent-badge-warning { background: rgba(255, 185, 0, 0.1); color: var(--fluent-warning); } .fluent-badge-error { background: rgba(209, 52, 56, 0.1); color: var(--fluent-error); } /* Alert */ .fluent-alert { background: var(--fluent-surface-primary); border: 1px solid var(--fluent-surface-stroke); border-radius: var(--fluent-border-radius-large); padding: var(--fluent-spacing-l); margin: var(--fluent-spacing-l) 0; display: flex; align-items: flex-start; gap: var(--fluent-spacing-m); } .fluent-alert-info { border-left: 4px solid var(--fluent-info); background: rgba(0, 120, 212, 0.05); } .fluent-alert-success { border-left: 4px solid var(--fluent-success); background: rgba(16, 124, 16, 0.05); } .fluent-alert-warning { border-left: 4px solid var(--fluent-warning); background: rgba(255, 185, 0, 0.05); } .fluent-alert-error { border-left: 4px solid var(--fluent-error); background: rgba(209, 52, 56, 0.05); } /* Bootstrap Compatibility - Bootstrap class mappings to Fluent Design */ /* Container System */ .container, .container-fluid { max-width: 1200px; margin: 0 auto; padding: 0 var(--fluent-spacing-l); } /* Grid System */ .row { display: flex; flex-wrap: wrap; margin: 0 calc(-1 * var(--fluent-spacing-s)); } .col, .col-md-6, .col-md-4, .col-md-8, .col-md-12 { flex: 1; padding: 0 var(--fluent-spacing-s); } .col-md-6 { flex: 0 0 50%; max-width: 50%; } .col-md-4 { flex: 0 0 33.333333%; max-width: 33.333333%; } .col-md-8 { flex: 0 0 66.666667%; max-width: 66.666667%; } .col-md-12 { flex: 0 0 100%; max-width: 100%; } /* Cards */ .card { background: var(--fluent-surface-primary); border: 1px solid var(--fluent-surface-stroke); border-radius: var(--fluent-border-radius-large); box-shadow: var(--fluent-shadow-2); margin-bottom: var(--fluent-spacing-l); overflow: hidden; } .card-header { background: var(--fluent-bg-secondary); border-bottom: 1px solid var(--fluent-surface-stroke); padding: var(--fluent-spacing-l); font-weight: var(--fluent-font-weight-semibold); } .card-header.bg-primary { background: var(--fluent-primary) !important; color: var(--fluent-text-white) !important; border-bottom-color: var(--fluent-primary); } .card-body { padding: var(--fluent-spacing-l); } /* Buttons */ .btn { display: inline-flex; align-items: center; justify-content: center; font-family: var(--fluent-font-family); font-size: var(--fluent-font-size-body); font-weight: var(--fluent-font-weight-medium); padding: var(--fluent-spacing-s) var(--fluent-spacing-l); border: 1px solid transparent; border-radius: var(--fluent-border-radius-medium); cursor: pointer; transition: all var(--fluent-duration-normal) var(--fluent-curve-easy-ease); text-decoration: none; min-height: 32px; gap: var(--fluent-spacing-xs); } .btn-primary { background: var(--fluent-primary); color: var(--fluent-text-white); border-color: var(--fluent-primary); } .btn-primary:hover { background: var(--fluent-primary-hover); border-color: var(--fluent-primary-hover); color: var(--fluent-text-white); } .btn-success { background: var(--fluent-success); color: var(--fluent-text-white); border-color: var(--fluent-success); } .btn-outline-secondary { background: transparent; color: var(--fluent-text-secondary); border-color: var(--fluent-surface-stroke); } .btn-outline-secondary:hover { background: var(--fluent-bg-secondary); color: var(--fluent-text-primary); } /* Form Controls */ .form-control, .form-select { font-family: var(--fluent-font-family); font-size: var(--fluent-font-size-body); background: var(--fluent-surface-primary); border: 1px solid var(--fluent-surface-stroke); border-radius: var(--fluent-border-radius-medium); padding: var(--fluent-spacing-s) var(--fluent-spacing-m); color: var(--fluent-text-primary); outline: none; transition: all var(--fluent-duration-normal) var(--fluent-curve-easy-ease); min-height: 32px; width: 100%; } .form-control:focus, .form-select:focus { border-color: var(--fluent-primary); box-shadow: 0 0 0 1px var(--fluent-primary); } .form-control::placeholder { color: var(--fluent-text-tertiary); } /* Input Groups */ .input-group { display: flex; width: 100%; } .input-group .form-control { border-top-right-radius: 0; border-bottom-right-radius: 0; border-right: 0; } .input-group .btn { border-top-left-radius: 0; border-bottom-left-radius: 0; } /* List Groups */ .list-group { background: var(--fluent-surface-primary); border-radius: var(--fluent-border-radius-large); border: 1px solid var(--fluent-surface-stroke); overflow: hidden; } .list-group-item { background: var(--fluent-surface-primary); border: none; border-bottom: 1px solid var(--fluent-surface-stroke); padding: var(--fluent-spacing-m) var(--fluent-spacing-l); color: var(--fluent-text-primary); transition: all var(--fluent-duration-normal) var(--fluent-curve-easy-ease); } .list-group-item:last-child { border-bottom: none; } .list-group-item:hover { background: var(--fluent-bg-secondary); } /* Badges */ .badge { display: inline-flex; align-items: center; font-size: var(--fluent-font-size-caption); font-weight: var(--fluent-font-weight-medium); padding: var(--fluent-spacing-xs) var(--fluent-spacing-s); border-radius: var(--fluent-border-radius-large); text-transform: uppercase; letter-spacing: 0.5px; } .badge.bg-primary, .bg-primary { background: var(--fluent-primary) !important; color: var(--fluent-text-white) !important; } /* Alerts */ .alert { background: var(--fluent-surface-primary); border: 1px solid var(--fluent-surface-stroke); border-radius: var(--fluent-border-radius-large); padding: var(--fluent-spacing-l); margin: var(--fluent-spacing-l) 0; display: flex; align-items: flex-start; gap: var(--fluent-spacing-m); } .alert-info { border-left: 4px solid var(--fluent-info); background: rgba(0, 120, 212, 0.05); } /* Spacing utilities */ .mb-0 { margin-bottom: 0 !important; } .mb-1 { margin-bottom: var(--fluent-spacing-xs) !important; } .mb-2 { margin-bottom: var(--fluent-spacing-s) !important; } .mb-3 { margin-bottom: var(--fluent-spacing-m) !important; } .mb-4 { margin-bottom: var(--fluent-spacing-l) !important; } .mb-5 { margin-bottom: var(--fluent-spacing-2xl) !important; } .mt-2 { margin-top: var(--fluent-spacing-s) !important; } .mt-3 { margin-top: var(--fluent-spacing-m) !important; } .py-5 { padding-top: var(--fluent-spacing-2xl) !important; padding-bottom: var(--fluent-spacing-2xl) !important; } /* Display utilities */ .d-none { display: none !important; } .d-block { display: block !important; } .d-flex { display: flex !important; } .d-grid { display: grid !important; } .justify-content-between { justify-content: space-between !important; } .align-items-center { align-items: center !important; } .text-center { text-align: center !important; } .text-muted { color: var(--fluent-text-tertiary) !important; } .text-white { color: var(--fluent-text-white) !important; } /* Gap utilities */ .gap-2 { gap: var(--fluent-spacing-s) !important; } /* Typography */ h1, .h1 { font-size: var(--fluent-font-size-title-1); font-weight: var(--fluent-font-weight-semibold); margin-bottom: var(--fluent-spacing-l); } h3, .h3 { font-size: var(--fluent-font-size-title-3); font-weight: var(--fluent-font-weight-semibold); margin-bottom: var(--fluent-spacing-m); } h4, .h4 { font-size: var(--fluent-font-size-subtitle); font-weight: var(--fluent-font-weight-semibold); margin-bottom: var(--fluent-spacing-m); } h5, .h5 { font-size: var(--fluent-font-size-body); font-weight: var(--fluent-font-weight-semibold); margin-bottom: var(--fluent-spacing-s); } small, .small { font-size: var(--fluent-font-size-caption); color: var(--fluent-text-secondary); } /* Responsive Design */ @media (max-width: 768px) { .fluent-container { padding: 0 var(--fluent-spacing-m); } .container { padding: 0 var(--fluent-spacing-m); } .fluent-command-bar { height: 44px; padding: 0 var(--fluent-spacing-m); } .fluent-command-bar-nav { gap: var(--fluent-spacing-m); } .fluent-grid { grid-template-columns: 1fr; gap: var(--fluent-spacing-m); } .fluent-card, .card { padding: var(--fluent-spacing-m); } .fluent-table { font-size: var(--fluent-font-size-caption); } .fluent-table th, .fluent-table td { padding: var(--fluent-spacing-s) var(--fluent-spacing-m); } .col-md-6, .col-md-4, .col-md-8, .col-md-12 { flex: 0 0 100%; max-width: 100%; } } @media (max-width: 480px) { .fluent-container { padding: 0 var(--fluent-spacing-s); } .fluent-command-bar { padding: 0 var(--fluent-spacing-s); } .fluent-flex, .fluent-flex-column { gap: var(--fluent-spacing-s); } .fluent-grid { gap: var(--fluent-spacing-s); } } /* Hover Effects (Fluent Reveal) */ @media (hover: hover) { .fluent-reveal { position: relative; overflow: hidden; } .fluent-reveal::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(255, 255, 255, 0.1) 0%, transparent 50%); opacity: 0; transition: opacity var(--fluent-duration-fast) var(--fluent-curve-easy-ease); pointer-events: none; } .fluent-reveal:hover::before { opacity: 1; } } /* Print Styles */ @media print { .fluent-theme { background: white; color: black; } .fluent-command-bar { display: none; } .fluent-card { border: 1px solid #ccc; box-shadow: none; break-inside: avoid; } .fluent-table { box-shadow: none; border: 1px solid #ccc; } .fluent-button { display: none; } } /* Accessibility Enhancements */ @media (prefers-reduced-motion: reduce) { * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } /* === Theme Selector Dropdown === */ .dropdown { display: inline-block !important; position: relative !important; } .dropdown-toggle { background: none !important; border: 1px solid var(--fluent-stroke-primary) !important; border-radius: var(--fluent-border-radius-m) !important; padding: 8px 12px !important; color: var(--fluent-text-primary) !important; font-size: 14px !important; display: flex !important; align-items: center !important; gap: 8px !important; cursor: pointer !important; } .dropdown-toggle:hover { background-color: var(--fluent-bg-subtle-hover) !important; } .dropdown-menu { background-color: var(--fluent-bg-primary) !important; border: 1px solid var(--fluent-stroke-primary) !important; border-radius: var(--fluent-border-radius-m) !important; box-shadow: var(--fluent-shadow-16) !important; padding: 4px !important; min-width: 200px !important; z-index: 1000 !important; } .dropdown-item { padding: 8px 12px !important; color: var(--fluent-text-primary) !important; text-decoration: none !important; border-radius: var(--fluent-border-radius-s) !important; display: block !important; } .dropdown-item:hover { background-color: var(--fluent-bg-subtle-hover) !important; color: var(--fluent-text-primary) !important; } .theme-name { font-weight: 500; }