 :root {
     --jaffer-orange: #FF8800;
 }

 body {
     min-height: 100vh;
     background: rgba(204, 204, 204, 0.9);
     margin: 0;
     padding: 0;
     box-sizing: border-box;
     font-family: 'Segoe UI', Arial, sans-serif;
     position: relative;
 }

 .login-container {
     position: absolute;
     top: 50%;
     left: 50%;
     transform: translate(-50%, -50%);
     background: rgba(255, 255, 255, 0.85);
     border-radius: 18px;
     box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
     padding: 2.5rem 2rem;
     width: 340px;
     z-index: 1;
     /* animation: float 2.5s ease-in-out infinite alternate; */
     display: flex;
     flex-direction: column;
     align-items: center;
 }

 @keyframes float {
     0% {
         transform: translate(-50%, -52%);
     }

     100% {
         transform: translate(-50%, -48%);
     }
 }

 .login-container h2 {
     color: var(--jaffer-orange);
     margin-bottom: 1.5rem;
     font-weight: 700;
     letter-spacing: 1px;
 }

 .login-form {
     width: 100%;
     display: flex;
     flex-direction: column;
     gap: 1.2rem;
 }

 .login-form label {
     font-size: 1rem;
     color: #333;
     margin-bottom: 0.3rem;
 }

 .login-form input[type="email"],
 .login-form input[type="password"] {
     padding: 0.7rem;
     border: 1px solid #ddd;
     border-radius: 6px;
     font-size: 1rem;
     outline: none;
     transition: border-color 0.2s;
 }

 .login-form input:focus {
     border-color: var(--jaffer-orange);
 }

 .login-form button {
     background: var(--jaffer-orange);
     color: #fff;
     border: none;
     border-radius: 6px;
     padding: 0.8rem;
     font-size: 1.1rem;
     font-weight: 600;
     cursor: pointer;
     transition: background 0.2s;
     margin-top: 0.5rem;
 }

 .login-form button:hover {
     background: #e06d00;
 }

 .schedule-list {
     overflow-y: auto;
     height: 100%;
     display: grid;
     gap: 1rem;
 }

 .card {
     background: rgba(255, 255, 255, 0.9);
     border-radius: 6px;
     padding: 1rem;
     box-sizing: border-box;
     box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
 }

 .border-transparent {
     border-color: transparent;
 }

 .border-none {
     border: none;
 }

 .pointer {
     cursor: pointer;
 }

 .htmx-indicator {
     display: flex;
 }

 .max-loader-img {
     position: absolute;
     top: 50%;
     left: 50%;
     width: 200px;
     height: 200px;
     max-width: 200px;
     max-height: 200px;
     transform: translate(-50%, -50%);
     background-image: url('/img/typingcat.gif');
     border-radius: 50%;
     z-index: 9999;
 }

 .full-loader {
     display: flex;
     position: fixed;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     backdrop-filter: blur(8px);
     background-color: rgba(0, 0, 0, 0.8);
     justify-content: center;
     align-items: center;
     z-index: 9998;
     pointer-events: none;
 }

 input[type="radio"]:checked {
     accent-color: #FF8800;
 }

 .basic-input {
     outline: none;
     box-sizing: border-box;
     padding: 0.25rem .5rem;
 }

 label .basic-input {
     width: 100%;
 }

 .basic-input-label {
     position: relative;
     display: block;
 }

 .basic-input-label span {
     position: absolute;
     top: 50%;
     left: 0;
     transform: translateY(-50%);
     transition: all 0.3s;
     pointer-events: none;
     color: #aaa;
     padding: 0.25rem .5rem;
 }


 .basic-input:focus~span,
 .basic-input:has(option:checked:not([value=""]))~span,
 .basic-input:focus~span,
 .basic-input:read-only~span,
 .basic-input:valid~span {
     top: -0.5rem;
     left: 0;
     font-size: 0.75rem;
     color: #FF8800;
 }

 .basic-input[styled="OUTLINE"] {
     border: 2px solid #ddd;
     border-radius: 0.5rem;
 }

 .basic-input[styled="UNDERLINE"] {
     border: none;
     border-bottom: 2px solid #ddd;
 }

 .basic-input[styled="NONE"] {
     border: none;
 }

 .basic-input[styled="OUTLINE"]:focus {
     border: 1px solid #FF8800;
 }

 .basic-input[styled="UNDERLINE"]:focus {
     border-bottom: 1px solid #FF8800;
 }

 .basic-input[styled="NONE"]:focus {
     border: none;
 }

 .basic-input[styled="TRANSPARENT"] {
     background: none;
     padding: 0;
     margin: 0;
 }

 .basic-input[rhs] {
     text-align: right;
 }

 .basic-input:invalid {
     border-color: red;
 }

 .basic-input:invalid~span {
     color: red;
 }

 .basic-input:invalid:not(:placeholder-shown)~span {
     top: -0.5rem;
     left: 0;
     font-size: 0.75rem;
 }

 .grid {
     display: grid;
 }

 .gap-4 {
     gap: 1rem;
 }

 .gap-6 {
     gap: 1.5rem;
 }

 .mb-6 {
     margin-bottom: 1.5rem;
 }

 .my-6 {
     margin-top: 1.5rem;
     margin-bottom: 1.5rem;
 }

 .border-b {
     border-bottom: 1px solid #a4a1a1;
 }

 .basic-dropdown {
     position: relative;
     display: inline-block;
 }

 .basic-dropdown-content {
     display: none;
     position: absolute;
     background-color: #f9f9f9;
     min-width: 160px;
     box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
     z-index: 1;
 }

 .basic-dropdown-content label {
     display: block;
     margin-top: 10px;
 }

 .basic-dropdown:hover .dropdown-content {
     display: block;
 }

 .hidden {
     display: none;
 }

 .sidebar {
     list-style-type: none;
     background-color: rgba(255, 255, 255, 0.9);
     box-shadow: 2px 0 5px rgba(0, 0, 0, 0.1);
     overflow-y: auto;
     margin: 0;
     padding: 0;
     max-width: 250px;
     display: flex;
     flex-direction: row;
 }

 .m-auto {
     margin: auto;
 }

 .m-0 {
     margin: 0;
 }

 .h-4 {
     height: 1rem;
 }

 .w-4 {
     width: 1rem;
 }

 .menu-item {
     color: #333;
     font-weight: 500;
     display: block;
     margin: .5rem;
 }

 .menu-item a {
     text-decoration: none;
     display: block;
 }

 .menu-item:hover {
     background-color: #ff880063;
     color: var(--jaffer-orange);
 }

 .menu-item-active a,
 .menu-item.menu-item-active a {
     color: var(--jaffer-orange);
 }

 .collections-section {
     width: 100%;
 }

 .collections-view-card {
     max-height: 100svh;
     display: flex;
     flex-direction: column;
     padding: 1rem 10%;
     box-sizing: border-box;
     gap: 1rem;
 }

 .overflow-auto {
     overflow: auto;
 }

 .sticky {
     position: sticky;
 }

 .top-0 {
     top: 0;
 }

 .w-full {
     width: 100%;
 }

 .sup {
     vertical-align: super;
     font-size: 0.75em;
 }

 .text-xs {
     font-size: 0.75rem;
 }

 .flex-wrap-between {
     display: flex;
     flex-wrap: wrap;
     /* Allows items to wrap to the next row */
     justify-content: space-between;
     /* Distributes items evenly */
     gap: .5rem;
     /* Adds spacing between items */
 }

 .justify-around {
     justify-content: space-around;
 }

 .btn {
     display: inline-block;
     font-weight: 600;
     padding: 0.6em 1.2em;
     border: none;
     border-radius: 0.4em;
     font-size: 1rem;
     cursor: pointer;
     transition: background 0.2s, color 0.2s, box-shadow 0.2s;
     text-align: center;
     text-decoration: none;
     outline: none;
     box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
 }

 .btn-primary {
     background: var(--jaffer-orange);
     color: #fff;
 }

 .btn-primary:hover,
 .btn-primary:focus {
     background: #e06d00;
 }

 .btn-danger {
     background: #e53935;
     color: #fff;
 }

 .btn-danger:hover,
 .btn-danger:focus {
     background: #b71c1c;
 }

 .btn-info {
     background: #2196f3;
     color: #fff;
 }

 .btn-info:hover,
 .btn-info:focus {
     background: #1565c0;
 }

 .btn-warn {
     background: #ffb300;
     color: #fff;
 }

 .btn-warn:hover,
 .btn-warn:focus {
     background: #ff6f00;
 }

 .btn-secondary {
     background: #757575;
     color: #fff;
 }

 .btn-secondary:hover,
 .btn-secondary:focus {
     background: #424242;
 }

 .mt-4 {
     margin-top: 1rem;
 }

 .w-full {
     width: 100%;
 }

 .flex {
     display: flex;
 }

 .flex-wrap {
     flex-wrap: wrap;
 }

 .items-center {
     align-items: center;
 }

 .justify-center {
     justify-content: center;
 }

 .w-16 {
     width: 4rem;
 }

 .h-16 {
     height: 4rem;
 }

 .mx-auto {
     margin-left: auto;
     margin-right: auto;
 }

 .my-8 {
     margin-top: 2rem;
     margin-bottom: 2rem;
 }

 .rounded-full {
     border-radius: 9999px;
 }

 .bg-gray-200 {
     background-color: #e5e7eb;
 }

 .text-4xl {
     font-size: 2.25rem;
     line-height: 2.5rem;
 }

 .text-lg {
     font-size: 1.5rem;
 }

 .text-gray-600 {
     color: #4b5563;
 }

 .hover\:bg-gray-300:hover {
     background-color: #d1d5db;
 }

 .focus\:outline-none:focus {
     outline: none;
 }

 .gap-2 {
     gap: 0.5rem;
 }

 .gap-1 {
     gap: 0.25rem;
 }

 .w-48 {
     width: 12rem;
 }

 .grid-cols-2 {
     grid-template-columns: repeat(2, 1fr);
 }

 .grid-cols-3 {
     grid-template-columns: repeat(3, 1fr);
 }

 @media (min-width: 768px) {
     .md\:grid-cols-2 {
         grid-template-columns: repeat(2, 1fr);
     }

     .md\:grid-cols-3 {
         grid-template-columns: repeat(3, 1fr);
     }
 }


 /* PicoCSS-like Switch */
 .switch {
     position: relative;
     display: inline-block;
     width: 44px;
     height: 24px;
     vertical-align: middle;
 }

 .switch input {
     opacity: 0;
     width: 0;
     height: 0;
 }

 .switch-slider {
     position: absolute;
     cursor: pointer;
     top: 0;
     left: 0;
     right: 0;
     bottom: 0;
     background-color: #ccc;
     transition: background 0.2s;
     border-radius: 24px;
 }

 .switch-slider:before {
     position: absolute;
     content: "";
     height: 18px;
     width: 18px;
     left: 3px;
     top: 3px;
     background-color: #fff;
     transition: transform 0.2s;
     border-radius: 50%;
     box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
 }

 .switch input:checked+.switch-slider {
     background-color: var(--jaffer-orange, #FF8800);
 }

 .switch input:checked+.switch-slider:before {
     transform: translateX(20px);
 }

 .switch:focus-within .switch-slider {
     box-shadow: 0 0 0 2px #ff880080;
 }

 .hide-ish {
     visibility: hidden;
     max-height: 0;
 }

 .text-gray-500 {
     color: #6b7280;
 }

 .divider-y>*:not(:last-child) {
     border-bottom: 1px solid #e5e7eb;
 }

 .progress-bar {
     /* or any height you want */
     background: linear-gradient(to right,
             var(--progress-color, orange) var(--progress, 0%),
             rgba(255, 255, 255, 0.9) var(--progress, 0%));
     transition: background 0.3s;
 }

 .ws-connection {
     position: fixed;
     z-index: -999;
 }

 .pt-6 {
     padding-top: 1.5rem;
 }

 .relative {
     position: relative;
 }