Spaces:
Running
Running
| :root { | |
| --brand-primary: #0F766E; | |
| --brand-primary-hover: #115E59; | |
| --brand-accent: #B45309; | |
| --app-bg: #F7F8F7; | |
| --surface: #FFFFFF; | |
| --surface-muted: #F1F5F4; | |
| --surface-raised: #FFFFFF; | |
| --border: #DDE5E2; | |
| --border-strong: #B9C8C3; | |
| --text-primary: #17211F; | |
| --text-muted: #64706D; | |
| --text-soft: #8B9894; | |
| --focus-ring: rgba(15, 118, 110, 0.24); | |
| --status-success-bg: #DFF6EE; | |
| --status-success-text: #0F766E; | |
| --status-warning-bg: #FEF3D2; | |
| --status-warning-text: #9A5B00; | |
| --status-danger-bg: #FCE4E1; | |
| --status-danger-text: #B42318; | |
| --sidebar-bg: #19211F; | |
| --sidebar-muted: #A5B2AE; | |
| --sidebar-active: rgba(15, 118, 110, 0.22); | |
| --sidebar-border: rgba(221, 229, 226, 0.12); | |
| --radius-sm: 0.375rem; | |
| --radius-md: 0.5rem; | |
| --radius-lg: 0.5rem; | |
| --shadow-card: 0 1px 2px rgba(23, 33, 31, 0.06), 0 12px 28px rgba(23, 33, 31, 0.045); | |
| --shadow-popover: 0 18px 44px rgba(23, 33, 31, 0.18); | |
| } | |
| html.dark { | |
| --brand-primary: #5EEAD4; | |
| --brand-primary-hover: #2DD4BF; | |
| --brand-accent: #FCD34D; | |
| --app-bg: #101614; | |
| --surface: #18201E; | |
| --surface-muted: #202A27; | |
| --surface-raised: #1B2522; | |
| --border: #2E3B37; | |
| --border-strong: #43524D; | |
| --text-primary: #F4F7F6; | |
| --text-muted: #B4C0BC; | |
| --text-soft: #889692; | |
| --focus-ring: rgba(94, 234, 212, 0.28); | |
| --status-success-bg: rgba(45, 212, 191, 0.16); | |
| --status-success-text: #99F6E4; | |
| --status-warning-bg: rgba(252, 211, 77, 0.16); | |
| --status-warning-text: #FDE68A; | |
| --status-danger-bg: rgba(248, 113, 113, 0.16); | |
| --status-danger-text: #FCA5A5; | |
| --sidebar-bg: #111816; | |
| --sidebar-muted: #9DACA7; | |
| --sidebar-active: rgba(94, 234, 212, 0.15); | |
| --sidebar-border: rgba(221, 229, 226, 0.12); | |
| --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.34); | |
| --shadow-popover: 0 18px 50px rgba(0, 0, 0, 0.42); | |
| color-scheme: dark; | |
| } | |
| html, body { | |
| font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; | |
| background-color: var(--app-bg); | |
| color: var(--text-primary); | |
| scrollbar-gutter: stable; | |
| font-size: 15px; | |
| letter-spacing: 0; | |
| -webkit-font-smoothing: antialiased; | |
| text-rendering: optimizeLegibility; | |
| } | |
| body.tts-sidebar-open { | |
| overflow: hidden; | |
| } | |
| * { | |
| scrollbar-width: thin; | |
| scrollbar-color: rgba(100, 116, 139, 0.72) transparent; | |
| } | |
| *::-webkit-scrollbar { | |
| width: 10px; | |
| height: 10px; | |
| } | |
| *::-webkit-scrollbar-track { | |
| background: transparent; | |
| } | |
| *::-webkit-scrollbar-thumb { | |
| background-color: rgba(100, 116, 139, 0.72); | |
| border: 2px solid transparent; | |
| border-radius: 999px; | |
| background-clip: content-box; | |
| min-height: 40px; | |
| } | |
| *::-webkit-scrollbar-thumb:hover { | |
| background-color: rgba(71, 85, 105, 0.92); | |
| background-clip: content-box; | |
| } | |
| *::-webkit-scrollbar-corner { | |
| background: transparent; | |
| } | |
| a, .btn-link { | |
| color: var(--brand-primary); | |
| } | |
| .btn-primary { | |
| color: #fff; | |
| background-color: var(--brand-primary); | |
| border-color: var(--brand-primary); | |
| } | |
| .btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus { | |
| box-shadow: 0 0 0 0.1rem var(--surface), 0 0 0 0.25rem var(--focus-ring); | |
| } | |
| .content { | |
| padding-top: 1.1rem; | |
| } | |
| h1:focus { | |
| outline: none; | |
| } | |
| .valid.modified:not([type=checkbox]) { | |
| outline: 1px solid #111827; | |
| } | |
| .invalid { | |
| outline: 1px solid #991B1B; | |
| } | |
| .validation-message { | |
| color: #991B1B; | |
| } | |
| .blazor-error-boundary { | |
| background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC51NDUgOTIuNzk1IDI5MC5hNTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNjg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyICcuODc5IDY5LjMxNzkgMjY3LjgyOSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA5Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #240046; | |
| padding: 1rem 1rem 1rem 3.7rem; | |
| color: white; | |
| } | |
| .blazor-error-boundary::after { | |
| content: "An error has occurred." | |
| } | |
| .darker-border-checkbox.form-check-input { | |
| border-color: #929292; | |
| } | |
| html.dark a, | |
| html.dark .btn-link { | |
| color: #93C5FD; | |
| } | |
| html.dark, | |
| html.dark body { | |
| background-color: var(--app-bg); | |
| color: var(--text-primary); | |
| scrollbar-color: rgba(148, 163, 184, 0.82) rgba(15, 23, 42, 0.9); | |
| } | |
| html.dark *::-webkit-scrollbar-track { | |
| background: rgba(15, 23, 42, 0.9); | |
| } | |
| html.dark *::-webkit-scrollbar-thumb { | |
| background-color: rgba(148, 163, 184, 0.82); | |
| } | |
| html.dark *::-webkit-scrollbar-thumb:hover { | |
| background-color: rgba(226, 232, 240, 0.9); | |
| } | |
| html.dark .bg-white, | |
| html.dark .bg-card, | |
| html.dark .bg-popover { | |
| background-color: #111827 ; | |
| } | |
| html.dark .bg-slate-50, | |
| html.dark .bg-slate-50\/50, | |
| html.dark .bg-slate-50\/60, | |
| html.dark .bg-slate-50\/70, | |
| html.dark .bg-muted { | |
| background-color: #1E293B ; | |
| } | |
| html.dark .bg-background, | |
| html.dark .bg-slate-100, | |
| html.dark .bg-slate-100\/50, | |
| html.dark .bg-slate-200, | |
| html.dark .bg-slate-300 { | |
| background-color: #334155 ; | |
| } | |
| html.dark .bg-slate-400, | |
| html.dark .bg-slate-500 { | |
| background-color: #475569 ; | |
| } | |
| html.dark .bg-slate-800, | |
| html.dark .bg-slate-900, | |
| html.dark .bg-slate-950 { | |
| background-color: #0F172A ; | |
| } | |
| html.dark .text-foreground, | |
| html.dark .text-card-foreground, | |
| html.dark .text-popover-foreground, | |
| html.dark .text-primary, | |
| html.dark .text-slate-950, | |
| html.dark .text-slate-900, | |
| html.dark .text-slate-800, | |
| html.dark .text-slate-700 { | |
| color: #F8FAFC ; | |
| } | |
| html.dark .text-slate-600, | |
| html.dark .text-slate-500 { | |
| color: #CBD5E1 ; | |
| } | |
| html.dark .text-muted-foreground, | |
| html.dark .text-muted, | |
| html.dark .text-slate-400, | |
| html.dark .text-slate-300 { | |
| color: #94A3B8 ; | |
| } | |
| html.dark .border-slate-100, | |
| html.dark .border-slate-200, | |
| html.dark .border-slate-300, | |
| html.dark .border-slate-800, | |
| html.dark .border-border, | |
| html.dark .divide-slate-100, | |
| html.dark .divide-slate-200 { | |
| border-color: #334155 ; | |
| } | |
| html.dark .border-red-500, | |
| html.dark .border-rose-500 { | |
| border-color: #FB7185 ; | |
| } | |
| html.dark .border-violet-500, | |
| html.dark .border-violet-600, | |
| html.dark .border-indigo-500, | |
| html.dark .border-indigo-600 { | |
| border-color: #93C5FD ; | |
| } | |
| html.dark input, | |
| html.dark select, | |
| html.dark textarea, | |
| html.dark .form-control, | |
| html.dark .form-select { | |
| background-color: #0F172A ; | |
| color: #F8FAFC ; | |
| border-color: #334155 ; | |
| } | |
| html.dark input::placeholder, | |
| html.dark textarea::placeholder { | |
| color: #94A3B8 ; | |
| } | |
| html.dark input[type="checkbox"], | |
| html.dark input[type="radio"] { | |
| accent-color: #2563EB; | |
| } | |
| html.dark .btn-primary, | |
| html.dark .bg-primary, | |
| html.dark .bg-violet-500, | |
| html.dark .bg-violet-600, | |
| html.dark .bg-purple-500, | |
| html.dark .bg-purple-600, | |
| html.dark .bg-indigo-500, | |
| html.dark .bg-indigo-600 { | |
| background-color: #2563EB ; | |
| border-color: #4338CA ; | |
| color: #FFFFFF ; | |
| } | |
| html.dark .bg-violet-700, | |
| html.dark .bg-purple-700, | |
| html.dark .bg-indigo-700 { | |
| background-color: #4338CA ; | |
| color: #FFFFFF ; | |
| } | |
| html.dark .bg-violet-400, | |
| html.dark .bg-purple-400, | |
| html.dark .bg-indigo-400 { | |
| background-color: #93C5FD ; | |
| } | |
| html.dark .bg-violet-50, | |
| html.dark .bg-violet-50\/40, | |
| html.dark .bg-violet-50\/70, | |
| html.dark .bg-violet-100, | |
| html.dark .bg-violet-200, | |
| html.dark .bg-purple-50, | |
| html.dark .bg-purple-100, | |
| html.dark .bg-indigo-100 { | |
| background-color: rgba(129, 140, 248, 0.18) ; | |
| } | |
| html.dark .text-violet-500, | |
| html.dark .text-violet-600, | |
| html.dark .text-violet-700, | |
| html.dark .text-purple-600, | |
| html.dark .text-purple-700, | |
| html.dark .text-indigo-600, | |
| html.dark .text-indigo-700 { | |
| color: #93C5FD ; | |
| } | |
| html.dark .bg-rose-50, | |
| html.dark .bg-rose-100, | |
| html.dark .bg-rose-500\/10, | |
| html.dark .bg-red-50, | |
| html.dark .bg-red-100 { | |
| background-color: rgba(244, 63, 94, 0.18) ; | |
| } | |
| html.dark .text-rose-500, | |
| html.dark .text-rose-600, | |
| html.dark .text-rose-700, | |
| html.dark .text-red-500, | |
| html.dark .text-red-600, | |
| html.dark .text-red-700 { | |
| color: #FDA4AF ; | |
| } | |
| html.dark .bg-amber-50, | |
| html.dark .bg-amber-100, | |
| html.dark .bg-amber-500\/10, | |
| html.dark .bg-yellow-50, | |
| html.dark .bg-yellow-100, | |
| html.dark .bg-orange-50, | |
| html.dark .bg-orange-100 { | |
| background-color: rgba(245, 158, 11, 0.18) ; | |
| } | |
| html.dark .text-amber-500, | |
| html.dark .text-amber-600, | |
| html.dark .text-amber-700, | |
| html.dark .text-amber-800, | |
| html.dark .text-yellow-600, | |
| html.dark .text-yellow-700, | |
| html.dark .text-orange-600, | |
| html.dark .text-orange-700 { | |
| color: #FCD34D ; | |
| } | |
| html.dark .bg-emerald-50, | |
| html.dark .bg-emerald-100, | |
| html.dark .bg-emerald-500\/10, | |
| html.dark .bg-green-50, | |
| html.dark .bg-green-100 { | |
| background-color: rgba(16, 185, 129, 0.18) ; | |
| } | |
| html.dark .text-emerald-500, | |
| html.dark .text-emerald-600, | |
| html.dark .text-emerald-700, | |
| html.dark .text-green-500, | |
| html.dark .text-green-600, | |
| html.dark .text-green-700 { | |
| color: #6EE7B7 ; | |
| } | |
| html.dark .bg-blue-50, | |
| html.dark .bg-blue-100, | |
| html.dark .bg-sky-50, | |
| html.dark .bg-cyan-50, | |
| html.dark .bg-teal-50 { | |
| background-color: rgba(14, 165, 233, 0.18) ; | |
| } | |
| html.dark .text-blue-600, | |
| html.dark .text-blue-700, | |
| html.dark .text-sky-600, | |
| html.dark .text-cyan-600, | |
| html.dark .text-teal-600 { | |
| color: #7DD3FC ; | |
| } | |
| html.dark .hover\:bg-white:hover, | |
| html.dark .hover\:bg-slate-50:hover, | |
| html.dark .hover\:bg-slate-50\/50:hover, | |
| html.dark .hover\:bg-slate-50\/60:hover, | |
| html.dark .hover\:bg-slate-100:hover { | |
| background-color: #1E293B ; | |
| } | |
| html.dark .hover\:bg-violet-500:hover, | |
| html.dark .hover\:bg-violet-600:hover, | |
| html.dark .hover\:bg-violet-700:hover, | |
| html.dark .hover\:bg-purple-700:hover, | |
| html.dark .hover\:bg-indigo-100:hover { | |
| background-color: #4338CA ; | |
| color: #FFFFFF ; | |
| } | |
| html.dark .hover\:bg-violet-50:hover { | |
| background-color: rgba(129, 140, 248, 0.22) ; | |
| } | |
| html.dark .hover\:bg-amber-50:hover { | |
| background-color: rgba(245, 158, 11, 0.22) ; | |
| } | |
| html.dark .hover\:bg-rose-50:hover, | |
| html.dark .hover\:bg-red-50:hover { | |
| background-color: rgba(244, 63, 94, 0.22) ; | |
| } | |
| html.dark .hover\:text-slate-600:hover, | |
| html.dark .hover\:text-slate-700:hover, | |
| html.dark .hover\:text-slate-800:hover, | |
| html.dark .hover\:text-slate-900:hover { | |
| color: #F8FAFC ; | |
| } | |
| html.dark .hover\:text-violet-500:hover, | |
| html.dark .hover\:text-violet-600:hover, | |
| html.dark .hover\:text-violet-700:hover, | |
| html.dark .hover\:text-violet-800:hover { | |
| color: #93C5FD ; | |
| } | |
| html.dark .hover\:text-amber-600:hover { | |
| color: #FCD34D ; | |
| } | |
| html.dark .hover\:text-rose-500:hover, | |
| html.dark .hover\:text-rose-600:hover, | |
| html.dark .hover\:text-red-600:hover { | |
| color: #FDA4AF ; | |
| } | |
| html.dark .focus\:ring-slate-400:focus, | |
| html.dark .focus\:ring-slate-900:focus, | |
| html.dark .focus\:ring-violet-600:focus, | |
| html.dark .focus\:ring-red-500:focus { | |
| --tw-ring-color: #93C5FD ; | |
| } | |
| html.dark .shadow-sm { | |
| box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35) ; | |
| } | |
| html.dark .shadow-lg, | |
| html.dark .shadow-lg { | |
| box-shadow: 0 18px 50px rgba(0, 0, 0, 0.28) ; | |
| } | |
| html.dark .flatpickr-calendar { | |
| background: #111827; | |
| border-color: #334155; | |
| box-shadow: 0 18px 50px rgba(0, 0, 0, 0.35); | |
| } | |
| html.dark .flatpickr-months, | |
| html.dark .flatpickr-weekdays, | |
| html.dark .flatpickr-current-month, | |
| html.dark .flatpickr-weekday, | |
| html.dark .flatpickr-day { | |
| color: #E2E8F0; | |
| } | |
| html.dark .flatpickr-day:hover, | |
| html.dark .flatpickr-day:focus { | |
| background: #1E293B; | |
| border-color: #334155; | |
| } | |
| html.dark .flatpickr-day.selected, | |
| html.dark .flatpickr-day.startRange, | |
| html.dark .flatpickr-day.endRange { | |
| background: var(--brand-primary); | |
| border-color: var(--brand-primary); | |
| color: #FFFFFF; | |
| } | |
| /* Taskify UI system */ | |
| .app-shell { | |
| --app-sidebar-width: 18rem; | |
| display: flex; | |
| min-height: 100vh; | |
| background: var(--app-bg); | |
| color: var(--text-primary); | |
| overflow: hidden; | |
| } | |
| .app-sidebar { | |
| position: relative; | |
| display: flex; | |
| width: var(--app-sidebar-width); | |
| min-height: 100vh; | |
| flex-shrink: 0; | |
| flex-direction: column; | |
| overflow: hidden; | |
| border-right: 1px solid var(--sidebar-border); | |
| background: var(--sidebar-bg); | |
| color: #FFFFFF; | |
| } | |
| .app-sidebar::before { | |
| position: absolute; | |
| inset: 0; | |
| pointer-events: none; | |
| content: ""; | |
| background: transparent; | |
| } | |
| .app-sidebar > * { | |
| position: relative; | |
| z-index: 1; | |
| } | |
| .app-sidebar-brand { | |
| display: flex; | |
| min-height: 4.75rem; | |
| align-items: center; | |
| gap: 0.75rem; | |
| padding: 1rem 1.25rem; | |
| } | |
| .app-sidebar-logo { | |
| display: inline-flex; | |
| height: 2.4rem; | |
| width: 2.4rem; | |
| align-items: center; | |
| justify-content: center; | |
| border-radius: var(--radius-lg); | |
| background: var(--brand-primary); | |
| color: #FFFFFF; | |
| box-shadow: 0 10px 28px rgba(37, 99, 235, 0.28); | |
| } | |
| .app-sidebar-title { | |
| display: flex; | |
| flex-direction: column; | |
| line-height: 1.15; | |
| } | |
| .app-sidebar-title strong { | |
| font-size: 1.1rem; | |
| letter-spacing: 0; | |
| } | |
| .app-sidebar-title span { | |
| margin-top: 0.15rem; | |
| color: var(--sidebar-muted); | |
| font-size: 0.72rem; | |
| font-weight: 600; | |
| letter-spacing: 0.08em; | |
| text-transform: uppercase; | |
| } | |
| .app-sidebar-user { | |
| flex-shrink: 0; | |
| border-top: 1px solid var(--sidebar-border); | |
| padding: 0.875rem; | |
| } | |
| .app-main { | |
| display: flex; | |
| min-width: 0; | |
| flex: 1; | |
| flex-direction: column; | |
| } | |
| .app-topbar { | |
| display: flex; | |
| min-height: 4rem; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 1rem; | |
| border-bottom: 1px solid var(--border); | |
| background: color-mix(in srgb, var(--surface) 92%, transparent); | |
| padding: 0 1.5rem; | |
| backdrop-filter: blur(12px); | |
| } | |
| .app-topbar-title { | |
| min-width: 0; | |
| } | |
| .app-topbar-title h1 { | |
| margin: 0; | |
| color: var(--text-primary); | |
| font-size: 1.05rem; | |
| font-weight: 750; | |
| letter-spacing: 0; | |
| } | |
| .app-topbar-title p { | |
| margin: 0.1rem 0 0; | |
| color: var(--text-muted); | |
| font-size: 0.78rem; | |
| font-weight: 500; | |
| } | |
| .app-content { | |
| flex: 1; | |
| overflow-y: auto; | |
| padding: clamp(1rem, 2vw, 2rem); | |
| } | |
| @media (min-width: 960px) { | |
| .app-shell { | |
| height: 100dvh; | |
| min-height: 100dvh; | |
| padding-left: var(--app-sidebar-width); | |
| } | |
| .app-shell .app-sidebar { | |
| position: fixed; | |
| inset: 0 auto 0 0; | |
| height: 100dvh; | |
| min-height: 100dvh; | |
| transform: translateX(0) ; | |
| width: var(--app-sidebar-width) ; | |
| } | |
| .app-main { | |
| height: 100dvh; | |
| min-height: 100dvh; | |
| } | |
| } | |
| /* Tiered responsive scaling for laptops & smaller screens (e.g. 13.3" HP EliteBook G6) */ | |
| @media (min-width: 1366px) and (max-width: 1536px) { | |
| :root { | |
| font-size: 13.75px; | |
| } | |
| .app-shell { | |
| --app-sidebar-width: 15.75rem; | |
| } | |
| .app-content { | |
| padding: 1.25rem ; | |
| } | |
| } | |
| @media (min-width: 1150px) and (max-width: 1365px) { | |
| :root { | |
| font-size: 13px; | |
| } | |
| .app-shell { | |
| --app-sidebar-width: 14.75rem; | |
| } | |
| .app-content { | |
| padding: 1rem ; | |
| } | |
| .app-topbar { | |
| min-height: 3.5rem ; | |
| padding: 0 1.25rem ; | |
| } | |
| .app-sidebar-brand { | |
| min-height: 4rem ; | |
| padding: 0.75rem 1rem ; | |
| } | |
| } | |
| /* Compact scaling for 13.3" displays with 150% scaling or 960px-1149px viewports */ | |
| @media (min-width: 960px) and (max-width: 1149px) { | |
| :root { | |
| font-size: 12.25px; | |
| } | |
| .app-shell { | |
| --app-sidebar-width: 13.75rem; | |
| } | |
| .app-content { | |
| padding: 0.85rem ; | |
| } | |
| .app-topbar { | |
| min-height: 3.25rem ; | |
| padding: 0 1rem ; | |
| } | |
| .app-topbar-title h1 { | |
| font-size: 0.95rem ; | |
| } | |
| .app-sidebar-brand { | |
| min-height: 3.75rem ; | |
| padding: 0.65rem 0.85rem ; | |
| } | |
| .app-sidebar-logo { | |
| height: 2rem ; | |
| width: 2rem ; | |
| } | |
| main td, main th { | |
| padding-top: 0.45rem ; | |
| padding-bottom: 0.45rem ; | |
| } | |
| } | |
| .mobile-sidebar-toggle, | |
| .mobile-sidebar-close { | |
| display: none; | |
| } | |
| .sidebar-scrim { | |
| display: none; | |
| } | |
| .control-button { | |
| display: inline-flex; | |
| height: 2.35rem; | |
| min-width: 2.35rem; | |
| align-items: center; | |
| justify-content: center; | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-lg); | |
| background: var(--surface); | |
| color: var(--text-muted); | |
| box-shadow: var(--shadow-card); | |
| transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease; | |
| } | |
| .control-button:hover { | |
| border-color: var(--border-strong); | |
| background: var(--surface-muted); | |
| color: var(--brand-primary); | |
| } | |
| .control-button:focus-visible { | |
| outline: none; | |
| box-shadow: 0 0 0 4px var(--focus-ring); | |
| } | |
| .surface-panel { | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-lg); | |
| background: var(--surface); | |
| box-shadow: var(--shadow-card); | |
| } | |
| .page-kicker { | |
| color: var(--brand-primary); | |
| font-size: 0.74rem; | |
| font-weight: 750; | |
| letter-spacing: 0.08em; | |
| text-transform: uppercase; | |
| } | |
| .text-balance { | |
| text-wrap: balance; | |
| } | |
| main :is(input, select, textarea, .form-control, .form-select) { | |
| border-color: var(--border) ; | |
| border-radius: var(--radius-lg) ; | |
| background-color: var(--surface) ; | |
| color: var(--text-primary) ; | |
| } | |
| main :is(input, select, textarea, .form-control, .form-select):focus { | |
| border-color: var(--brand-primary) ; | |
| outline: none ; | |
| box-shadow: 0 0 0 4px var(--focus-ring) ; | |
| } | |
| main :is(input, textarea)::placeholder { | |
| color: var(--text-soft) ; | |
| } | |
| main table { | |
| width: 100%; | |
| border-collapse: separate; | |
| border-spacing: 0; | |
| } | |
| main thead tr { | |
| background: var(--surface-muted) ; | |
| } | |
| main th { | |
| color: var(--text-muted) ; | |
| white-space: nowrap; | |
| } | |
| main td { | |
| vertical-align: middle; | |
| } | |
| main tbody tr { | |
| transition: background-color 0.14s ease; | |
| } | |
| main tbody tr:hover { | |
| background: var(--surface-muted) ; | |
| } | |
| main .shadow-\[0_18px_50px_rgba\(15\,23\,42\,0\.08\)\], | |
| main .shadow-\[0_18px_50px_rgba\(15\,23\,42\,0\.12\)\] { | |
| box-shadow: var(--shadow-card) ; | |
| } | |
| main .rounded-\[32px\], | |
| main .rounded-\[28px\], | |
| main .rounded-\[24px\] { | |
| border-radius: var(--radius-lg) ; | |
| } | |
| .flatpickr-calendar { | |
| border-color: var(--border); | |
| border-radius: var(--radius-lg); | |
| box-shadow: var(--shadow-popover); | |
| } | |
| html.dark a, | |
| html.dark .btn-link, | |
| html.dark .text-violet-500, | |
| html.dark .text-violet-600, | |
| html.dark .text-violet-700, | |
| html.dark .text-purple-600, | |
| html.dark .text-purple-700, | |
| html.dark .text-indigo-600, | |
| html.dark .text-indigo-700 { | |
| color: var(--brand-primary) ; | |
| } | |
| html.dark .bg-white, | |
| html.dark .bg-card, | |
| html.dark .bg-popover { | |
| background-color: var(--surface) ; | |
| } | |
| html.dark .bg-slate-50, | |
| html.dark .bg-slate-50\/40, | |
| html.dark .bg-slate-50\/50, | |
| html.dark .bg-slate-50\/60, | |
| html.dark .bg-slate-50\/70, | |
| html.dark .bg-muted { | |
| background-color: var(--surface-muted) ; | |
| } | |
| html.dark .border-slate-100, | |
| html.dark .border-slate-200, | |
| html.dark .border-slate-300, | |
| html.dark .border-border, | |
| html.dark .divide-slate-100, | |
| html.dark .divide-slate-200 { | |
| border-color: var(--border) ; | |
| } | |
| html.dark .text-slate-950, | |
| html.dark .text-slate-900, | |
| html.dark .text-slate-800, | |
| html.dark .text-slate-700, | |
| html.dark .text-foreground, | |
| html.dark .text-card-foreground, | |
| html.dark .text-popover-foreground { | |
| color: var(--text-primary) ; | |
| } | |
| html.dark .text-slate-600, | |
| html.dark .text-slate-500, | |
| html.dark .text-muted, | |
| html.dark .text-muted-foreground { | |
| color: var(--text-muted) ; | |
| } | |
| html.dark .text-slate-400, | |
| html.dark .text-slate-300 { | |
| color: var(--text-soft) ; | |
| } | |
| html.dark .btn-primary, | |
| html.dark .bg-primary, | |
| html.dark .bg-violet-500, | |
| html.dark .bg-violet-600, | |
| html.dark .bg-violet-700, | |
| html.dark .bg-purple-500, | |
| html.dark .bg-purple-600, | |
| html.dark .bg-indigo-500, | |
| html.dark .bg-indigo-600 { | |
| background-color: var(--brand-primary) ; | |
| border-color: var(--brand-primary) ; | |
| color: #FFFFFF ; | |
| } | |
| html.dark .hover\:bg-violet-600:hover, | |
| html.dark .hover\:bg-violet-700:hover, | |
| html.dark .hover\:bg-purple-700:hover, | |
| html.dark .hover\:bg-indigo-100:hover { | |
| background-color: var(--brand-primary-hover) ; | |
| color: #FFFFFF ; | |
| } | |
| @media (max-width: 959px) { | |
| .app-shell { | |
| display: block; | |
| min-height: 100vh; | |
| overflow: auto; | |
| padding-left: 0 ; | |
| } | |
| .app-sidebar { | |
| position: fixed; | |
| inset: 0 auto 0 0; | |
| z-index: 60; | |
| width: min(18rem, calc(100vw - 3rem)) ; | |
| transform: translateX(-100%); | |
| transition: transform 0.22s ease; | |
| } | |
| body.tts-sidebar-open .app-sidebar { | |
| transform: translateX(0) ; | |
| } | |
| .sidebar-scrim { | |
| position: fixed; | |
| inset: 0; | |
| z-index: 50; | |
| display: none; | |
| border: 0; | |
| background: rgba(15, 23, 42, 0.48); | |
| } | |
| body.tts-sidebar-open .sidebar-scrim { | |
| display: block; | |
| } | |
| .mobile-sidebar-toggle, | |
| .mobile-sidebar-close { | |
| display: inline-flex ; | |
| } | |
| .app-main { | |
| min-height: 100vh; | |
| } | |
| .app-topbar { | |
| min-height: 3.5rem; | |
| padding: 0 1rem; | |
| } | |
| .app-content { | |
| padding: 1rem ; | |
| } | |
| .app-topbar-title p { | |
| display: none; | |
| } | |
| } | |
| @media (max-width: 640px) { | |
| html, | |
| body { | |
| font-size: 14px; | |
| } | |
| .app-content { | |
| padding: 0.875rem; | |
| } | |
| main table { | |
| min-width: 760px; | |
| } | |
| } | |
| /* ========================================== | |
| UNIVERSAL DARK MODE OVERRIDES | |
| ========================================== */ | |
| html.dark, | |
| html.dark body, | |
| html.dark .app-shell, | |
| html.dark .app-main, | |
| html.dark .app-content { | |
| background-color: #0B1120 ; | |
| color: #F8FAFC ; | |
| } | |
| html.dark .bg-white, | |
| html.dark .bg-card, | |
| html.dark .bg-popover, | |
| html.dark [class*="bg-white"] { | |
| background-color: #111827 ; | |
| color: #F8FAFC ; | |
| } | |
| html.dark .bg-slate-50, | |
| html.dark .bg-slate-50\/40, | |
| html.dark .bg-slate-50\/50, | |
| html.dark .bg-slate-50\/60, | |
| html.dark .bg-slate-50\/70, | |
| html.dark .bg-slate-50\/95, | |
| html.dark .bg-slate-100, | |
| html.dark .bg-slate-100\/50, | |
| html.dark .bg-muted { | |
| background-color: #182235 ; | |
| color: #F8FAFC ; | |
| } | |
| html.dark .bg-slate-200, | |
| html.dark .bg-slate-300 { | |
| background-color: #263449 ; | |
| } | |
| html.dark .text-slate-950, | |
| html.dark .text-slate-900, | |
| html.dark .text-slate-800, | |
| html.dark .text-slate-700, | |
| html.dark .text-foreground, | |
| html.dark .text-card-foreground, | |
| html.dark .text-popover-foreground { | |
| color: #F8FAFC ; | |
| } | |
| html.dark .text-slate-600, | |
| html.dark .text-slate-500, | |
| html.dark .text-muted, | |
| html.dark .text-muted-foreground { | |
| color: #CBD5E1 ; | |
| } | |
| html.dark .text-slate-400, | |
| html.dark .text-slate-300 { | |
| color: #94A3B8 ; | |
| } | |
| html.dark .border-slate-100, | |
| html.dark .border-slate-200, | |
| html.dark .border-slate-300, | |
| html.dark .border-border, | |
| html.dark .divide-slate-100, | |
| html.dark .divide-slate-200 { | |
| border-color: #263449 ; | |
| } | |
| html.dark .shadow-slate-200\/60, | |
| html.dark .shadow-slate-200\/50, | |
| html.dark .shadow-slate-200\/70, | |
| html.dark .shadow-sm, | |
| html.dark .shadow-md, | |
| html.dark .shadow-lg { | |
| box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45) ; | |
| } | |
| html.dark svg line[stroke="#e2e8f0"], | |
| html.dark svg line[stroke="#E2E8F0"] { | |
| stroke: #263449 ; | |
| } | |
| html.dark input, | |
| html.dark select, | |
| html.dark textarea, | |
| html.dark .form-control, | |
| html.dark .form-select { | |
| background-color: #111827 ; | |
| color: #F8FAFC ; | |
| border-color: #263449 ; | |
| } | |
| /* ========================================== | |
| PROFESSIONAL UI REFRESH | |
| ========================================== */ | |
| body { | |
| background: var(--app-bg); | |
| } | |
| ::selection { | |
| background: rgba(15, 118, 110, 0.18); | |
| color: var(--text-primary); | |
| } | |
| .app-shell { | |
| background: var(--app-bg); | |
| } | |
| .app-shell .app-sidebar { | |
| background: var(--sidebar-bg); | |
| } | |
| .app-sidebar::before { | |
| background: transparent; | |
| } | |
| .app-sidebar-logo { | |
| background: #0F766E; | |
| box-shadow: 0 12px 28px rgba(15, 118, 110, 0.24); | |
| } | |
| .app-topbar { | |
| background: color-mix(in srgb, var(--surface) 94%, transparent); | |
| } | |
| .app-content { | |
| background: transparent; | |
| } | |
| .control-button, | |
| main button, | |
| main a[class*="inline-flex"], | |
| main .btn { | |
| border-radius: var(--radius-lg) ; | |
| } | |
| .control-button { | |
| background: color-mix(in srgb, var(--surface) 96%, var(--brand-primary) 4%); | |
| } | |
| .btn-primary, | |
| main .bg-violet-500, | |
| main .bg-violet-600, | |
| main .bg-violet-700, | |
| main .bg-purple-500, | |
| main .bg-purple-600, | |
| main .bg-indigo-500, | |
| main .bg-indigo-600, | |
| main .bg-blue-600 { | |
| background-color: #0F766E ; | |
| border-color: #0F766E ; | |
| color: #FFFFFF ; | |
| } | |
| .btn-primary:hover, | |
| main .hover\:bg-violet-500:hover, | |
| main .hover\:bg-violet-600:hover, | |
| main .hover\:bg-violet-700:hover, | |
| main .hover\:bg-purple-700:hover, | |
| main .hover\:bg-blue-600:hover, | |
| main .hover\:bg-blue-700:hover { | |
| background-color: #115E59 ; | |
| border-color: #115E59 ; | |
| color: #FFFFFF ; | |
| } | |
| main .text-violet-500, | |
| main .text-violet-600, | |
| main .text-violet-700, | |
| main .text-purple-600, | |
| main .text-purple-700, | |
| main .text-indigo-600, | |
| main .text-indigo-700, | |
| main .text-blue-600, | |
| main .text-blue-700 { | |
| color: #0F766E ; | |
| } | |
| main .hover\:text-violet-500:hover, | |
| main .hover\:text-violet-600:hover, | |
| main .hover\:text-violet-700:hover, | |
| main .hover\:text-violet-800:hover, | |
| main .hover\:text-blue-600:hover, | |
| main .hover\:text-blue-700:hover { | |
| color: #115E59 ; | |
| } | |
| main .bg-violet-50, | |
| main .bg-violet-50\/10, | |
| main .bg-violet-50\/40, | |
| main .bg-violet-50\/60, | |
| main .bg-violet-50\/70, | |
| main .bg-violet-100, | |
| main .bg-purple-50, | |
| main .bg-purple-100, | |
| main .bg-indigo-50, | |
| main .bg-indigo-100, | |
| main .bg-blue-50, | |
| main .bg-blue-100 { | |
| background-color: #E6F4F1 ; | |
| } | |
| main .border-violet-100, | |
| main .border-violet-200, | |
| main .border-violet-300, | |
| main .border-indigo-100, | |
| main .border-indigo-200, | |
| main .border-blue-100, | |
| main .border-blue-200 { | |
| border-color: #B7DAD4 ; | |
| } | |
| main .focus\:ring-violet-100:focus, | |
| main .focus\:ring-violet-500:focus, | |
| main .focus\:ring-violet-600:focus, | |
| main .focus\:ring-slate-900:focus { | |
| --tw-ring-color: var(--focus-ring) ; | |
| } | |
| main .focus\:border-violet-400:focus, | |
| main .focus\:border-violet-600:focus { | |
| border-color: var(--brand-primary) ; | |
| } | |
| main .accent-violet-600, | |
| html.dark main .accent-violet-600 { | |
| accent-color: #0F766E ; | |
| } | |
| main .bg-white, | |
| main .bg-card, | |
| main .bg-popover { | |
| background-color: var(--surface) ; | |
| color: var(--text-primary) ; | |
| } | |
| main .bg-slate-50, | |
| main .bg-slate-50\/40, | |
| main .bg-slate-50\/50, | |
| main .bg-slate-50\/60, | |
| main .bg-slate-50\/70, | |
| main .bg-slate-50\/95, | |
| main .bg-muted { | |
| background-color: var(--surface-muted) ; | |
| } | |
| main .border-slate-100, | |
| main .border-slate-200, | |
| main .border-slate-300, | |
| main .border-border, | |
| main .divide-slate-100, | |
| main .divide-slate-200 { | |
| border-color: var(--border) ; | |
| } | |
| main .text-slate-950, | |
| main .text-slate-900, | |
| main .text-slate-800, | |
| main .text-slate-700, | |
| main .text-foreground, | |
| main .text-card-foreground, | |
| main .text-popover-foreground { | |
| color: var(--text-primary) ; | |
| } | |
| main .text-slate-600, | |
| main .text-slate-500, | |
| main .text-muted, | |
| main .text-muted-foreground { | |
| color: var(--text-muted) ; | |
| } | |
| main .text-slate-400, | |
| main .text-slate-300 { | |
| color: var(--text-soft) ; | |
| } | |
| main .shadow-sm, | |
| main .shadow-md, | |
| main .shadow-lg, | |
| main .shadow-slate-200\/50, | |
| main .shadow-slate-200\/60, | |
| main .shadow-slate-200\/70 { | |
| box-shadow: var(--shadow-card) ; | |
| } | |
| main :is(.rounded-xl, .rounded-2xl, .rounded-3xl, .rounded-\[24px\], .rounded-\[28px\], .rounded-\[32px\]) { | |
| border-radius: var(--radius-lg) ; | |
| } | |
| main :is(table, .surface-panel), | |
| main :is(.border-slate-200.bg-white, .border-slate-100.bg-white) { | |
| box-shadow: var(--shadow-card); | |
| } | |
| main thead tr { | |
| background: color-mix(in srgb, var(--surface-muted) 88%, var(--brand-primary) 12%) ; | |
| } | |
| main th { | |
| font-size: 0.72rem ; | |
| letter-spacing: 0.06em ; | |
| } | |
| main tbody tr:hover { | |
| background: color-mix(in srgb, var(--surface-muted) 84%, var(--brand-primary) 16%) ; | |
| } | |
| main :is(input, select, textarea, .form-control, .form-select) { | |
| min-height: 2.45rem; | |
| } | |
| main label { | |
| color: var(--text-muted) ; | |
| font-weight: 650; | |
| } | |
| main [class*="bg-emerald-100"], | |
| main [class*="bg-green-100"] { | |
| background-color: var(--status-success-bg) ; | |
| color: var(--status-success-text) ; | |
| } | |
| main [class*="bg-amber-100"], | |
| main [class*="bg-yellow-100"], | |
| main [class*="bg-orange-100"] { | |
| background-color: var(--status-warning-bg) ; | |
| color: var(--status-warning-text) ; | |
| } | |
| main [class*="bg-red-100"], | |
| main [class*="bg-rose-100"] { | |
| background-color: var(--status-danger-bg) ; | |
| color: var(--status-danger-text) ; | |
| } | |
| main svg line[stroke="#e2e8f0"], | |
| main svg line[stroke="#E2E8F0"] { | |
| stroke: var(--border) ; | |
| } | |
| main svg path[stroke="#2563eb"], | |
| main svg path[stroke="#3b82f6"] { | |
| stroke: var(--brand-primary) ; | |
| } | |
| main svg circle[fill="#2563eb"], | |
| main svg circle[fill="#3b82f6"] { | |
| fill: var(--brand-primary) ; | |
| } | |
| html.dark, | |
| html.dark body, | |
| html.dark .app-shell, | |
| html.dark .app-main, | |
| html.dark .app-content { | |
| background-color: var(--app-bg) ; | |
| color: var(--text-primary) ; | |
| } | |
| html.dark body { | |
| background: var(--app-bg); | |
| } | |
| html.dark .app-shell { | |
| background: var(--app-bg); | |
| } | |
| html.dark main .bg-white, | |
| html.dark main .bg-card, | |
| html.dark main .bg-popover, | |
| html.dark main [class*="bg-white"] { | |
| background-color: var(--surface) ; | |
| color: var(--text-primary) ; | |
| } | |
| html.dark main .bg-slate-50, | |
| html.dark main .bg-slate-50\/40, | |
| html.dark main .bg-slate-50\/50, | |
| html.dark main .bg-slate-50\/60, | |
| html.dark main .bg-slate-50\/70, | |
| html.dark main .bg-slate-50\/95, | |
| html.dark main .bg-slate-100, | |
| html.dark main .bg-slate-100\/50, | |
| html.dark main .bg-muted { | |
| background-color: var(--surface-muted) ; | |
| color: var(--text-primary) ; | |
| } | |
| html.dark main .bg-slate-200, | |
| html.dark main .bg-slate-300 { | |
| background-color: #2E3B37 ; | |
| } | |
| html.dark main .text-slate-950, | |
| html.dark main .text-slate-900, | |
| html.dark main .text-slate-800, | |
| html.dark main .text-slate-700, | |
| html.dark main .text-foreground, | |
| html.dark main .text-card-foreground, | |
| html.dark main .text-popover-foreground { | |
| color: var(--text-primary) ; | |
| } | |
| html.dark main .text-slate-600, | |
| html.dark main .text-slate-500, | |
| html.dark main .text-muted, | |
| html.dark main .text-muted-foreground { | |
| color: var(--text-muted) ; | |
| } | |
| html.dark main .text-slate-400, | |
| html.dark main .text-slate-300 { | |
| color: var(--text-soft) ; | |
| } | |
| html.dark main .border-slate-100, | |
| html.dark main .border-slate-200, | |
| html.dark main .border-slate-300, | |
| html.dark main .border-border, | |
| html.dark main .divide-slate-100, | |
| html.dark main .divide-slate-200 { | |
| border-color: var(--border) ; | |
| } | |
| html.dark main .bg-violet-50, | |
| html.dark main .bg-violet-50\/10, | |
| html.dark main .bg-violet-50\/40, | |
| html.dark main .bg-violet-50\/60, | |
| html.dark main .bg-violet-50\/70, | |
| html.dark main .bg-violet-100, | |
| html.dark main .bg-purple-50, | |
| html.dark main .bg-purple-100, | |
| html.dark main .bg-indigo-50, | |
| html.dark main .bg-indigo-100, | |
| html.dark main .bg-blue-50, | |
| html.dark main .bg-blue-100 { | |
| background-color: rgba(94, 234, 212, 0.13) ; | |
| } | |
| html.dark main .text-violet-500, | |
| html.dark main .text-violet-600, | |
| html.dark main .text-violet-700, | |
| html.dark main .text-purple-600, | |
| html.dark main .text-purple-700, | |
| html.dark main .text-indigo-600, | |
| html.dark main .text-indigo-700, | |
| html.dark main .text-blue-600, | |
| html.dark main .text-blue-700 { | |
| color: var(--brand-primary) ; | |
| } | |
| html.dark main .btn-primary, | |
| html.dark main .bg-primary, | |
| html.dark main .bg-violet-500, | |
| html.dark main .bg-violet-600, | |
| html.dark main .bg-violet-700, | |
| html.dark main .bg-purple-500, | |
| html.dark main .bg-purple-600, | |
| html.dark main .bg-indigo-500, | |
| html.dark main .bg-indigo-600, | |
| html.dark main .bg-blue-600 { | |
| background-color: #0F766E ; | |
| border-color: #0F766E ; | |
| color: #FFFFFF ; | |
| } | |
| html.dark input, | |
| html.dark select, | |
| html.dark textarea, | |
| html.dark .form-control, | |
| html.dark .form-select { | |
| background-color: var(--surface-raised) ; | |
| color: var(--text-primary) ; | |
| border-color: var(--border) ; | |
| } | |
| /* ========================================== | |
| SHELL + DASHBOARD QUALITY GUARD | |
| Loaded after Tailwind so layout-critical rules always win. | |
| ========================================== */ | |
| :root { | |
| --app-sidebar-width: 16.25rem; | |
| --chart-primary: #0F766E; | |
| --chart-secondary: #38BDF8; | |
| --chart-success: #10B981; | |
| --chart-warning: #B45309; | |
| --chart-danger: #DC2626; | |
| } | |
| html, | |
| body { | |
| width: 100%; | |
| min-width: 0; | |
| overflow-x: hidden; | |
| } | |
| body.tts-sidebar-open { | |
| overflow: auto; | |
| } | |
| .app-shell { | |
| display: flex ; | |
| gap: 1rem ; | |
| min-width: 0 ; | |
| width: 100% ; | |
| background: var(--app-bg) ; | |
| } | |
| .app-shell .app-sidebar { | |
| position: sticky ; | |
| inset: 0 auto auto 0 ; | |
| z-index: 40 ; | |
| width: var(--app-sidebar-width) ; | |
| height: 100dvh ; | |
| min-height: 100dvh ; | |
| max-width: var(--app-sidebar-width) ; | |
| transform: translateX(0) ; | |
| background: var(--sidebar-bg) ; | |
| } | |
| .app-main { | |
| min-width: 0 ; | |
| width: 100% ; | |
| flex: 1 1 auto ; | |
| margin-left: 1rem ; | |
| } | |
| .app-topbar { | |
| position: sticky; | |
| top: 0; | |
| z-index: 30; | |
| min-height: 4.1rem ; | |
| background: color-mix(in srgb, var(--surface) 96%, transparent) ; | |
| } | |
| .app-topbar > div:last-child { | |
| position: relative; | |
| z-index: 45; | |
| pointer-events: auto; | |
| } | |
| .app-topbar .control-button, | |
| .app-topbar [data-theme-toggle] { | |
| position: relative; | |
| z-index: 46; | |
| cursor: pointer; | |
| pointer-events: auto ; | |
| } | |
| .app-content { | |
| width: 100% ; | |
| min-width: 0 ; | |
| padding: clamp(1.25rem, 1.8vw, 1.75rem) ; | |
| } | |
| .mobile-sidebar-toggle, | |
| .mobile-sidebar-close, | |
| .sidebar-scrim { | |
| display: none ; | |
| } | |
| main > .space-y-8, | |
| main > .space-y-6 { | |
| max-width: 96rem; | |
| margin-right: auto; | |
| margin-left: auto; | |
| } | |
| main :is(.grid) { | |
| min-width: 0; | |
| } | |
| main :is(.rounded-xl.border, .rounded-lg.border, .surface-panel) { | |
| border-color: var(--border) ; | |
| } | |
| main :is(.rounded-xl.border.border-slate-200.bg-white, .rounded-lg.border.border-slate-200.bg-white) { | |
| background: var(--surface) ; | |
| } | |
| main :is(h2, h3) { | |
| letter-spacing: 0 ; | |
| } | |
| main .page-kicker, | |
| main .uppercase.tracking-\[0\.08em\], | |
| main .uppercase.tracking-wider { | |
| color: var(--brand-primary) ; | |
| } | |
| main a, | |
| main button { | |
| touch-action: manipulation; | |
| } | |
| main button, | |
| main a[class*="inline-flex"] { | |
| min-height: 2.75rem; | |
| } | |
| main svg [stroke="#2563eb"], | |
| main svg [stroke="#3b82f6"], | |
| main svg [stroke="#06b6d4"] { | |
| stroke: var(--chart-primary) ; | |
| } | |
| main svg [fill="#2563eb"], | |
| main svg [fill="#3b82f6"], | |
| main svg [fill="#06b6d4"] { | |
| fill: var(--chart-primary) ; | |
| } | |
| main svg stop[stop-color="#2563eb"], | |
| main svg stop[stop-color="#3b82f6"] { | |
| stop-color: var(--chart-primary) ; | |
| } | |
| main svg [stroke="#ef4444"], | |
| main svg [fill="#ef4444"] { | |
| stroke: var(--chart-danger) ; | |
| fill: var(--chart-danger) ; | |
| } | |
| @media (min-width: 960px) { | |
| body.tts-sidebar-open { | |
| overflow: auto ; | |
| } | |
| .app-shell { | |
| height: 100dvh ; | |
| min-height: 100dvh ; | |
| padding-left: 0 ; | |
| overflow: hidden ; | |
| gap: 1rem ; | |
| } | |
| .app-main { | |
| height: 100dvh ; | |
| min-height: 100dvh ; | |
| } | |
| .app-content { | |
| overflow-y: auto ; | |
| } | |
| } | |
| @media (min-width: 1366px) and (max-width: 1536px) { | |
| :root { | |
| --app-sidebar-width: 15rem; | |
| } | |
| } | |
| @media (min-width: 1150px) and (max-width: 1365px) { | |
| :root { | |
| --app-sidebar-width: 14.25rem; | |
| } | |
| } | |
| @media (min-width: 960px) and (max-width: 1149px) { | |
| :root { | |
| --app-sidebar-width: 13.25rem; | |
| } | |
| } | |
| @media (max-width: 959px) { | |
| body.tts-sidebar-open { | |
| overflow: hidden ; | |
| } | |
| .app-shell { | |
| display: block ; | |
| min-height: 100dvh ; | |
| padding-left: 0 ; | |
| overflow: auto ; | |
| gap: 0 ; | |
| } | |
| .app-sidebar { | |
| width: min(18rem, calc(100vw - 3rem)) ; | |
| transform: translateX(-100%) ; | |
| transition: transform 0.22s ease ; | |
| } | |
| body.tts-sidebar-open .app-sidebar { | |
| transform: translateX(0) ; | |
| } | |
| .sidebar-scrim { | |
| position: fixed ; | |
| inset: 0 ; | |
| z-index: 50 ; | |
| display: none ; | |
| border: 0 ; | |
| background: rgba(16, 22, 20, 0.54) ; | |
| } | |
| body.tts-sidebar-open .sidebar-scrim { | |
| display: block ; | |
| } | |
| .mobile-sidebar-toggle, | |
| .mobile-sidebar-close { | |
| display: inline-flex ; | |
| } | |
| .app-main { | |
| min-height: 100dvh ; | |
| margin-left: 0 ; | |
| } | |
| .app-topbar { | |
| min-height: 3.6rem ; | |
| } | |
| } | |