@tailwind base; @tailwind components; @tailwind utilities; :root { font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; @apply bg-black text-slate-100; } body { margin: 0; min-height: 100vh; @apply bg-black text-slate-100; } * { scrollbar-width: thin; scrollbar-color: #3b82f6 rgba(255, 255, 255, 0.08); } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } *::-webkit-scrollbar { width: 1px; height: 1px; } *::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.08); } *::-webkit-scrollbar-thumb { background-color: #3b82f6; border-radius: 9999px; } @layer components { .panel { @apply bg-black text-white p-0 rounded-md; } .panel-section { @apply bg-neutral-900 text-white p-0 rounded-md; } .panel-muted { @apply text-sm text-slate-400 rounded-md; } .surface { @apply bg-neutral-800 text-white px-0.5 py-0.5 rounded-md; } .surface-muted { @apply bg-neutral-700 text-neutral-100 px-0.5 py-0.5 rounded-md; } .field-input { @apply bg-neutral-700 border border-neutral-600 text-white placeholder:text-slate-400 px-0.5 py-0.5 focus:outline-none focus:ring-1 focus:ring-sky-500 rounded-md; } .button-dark { @apply px-0.5 py-0.5 text-sm font-medium text-white transition-colors bg-sky-600 hover:bg-sky-500 rounded-md border border-sky-300 hover:border-sky-500; } .button-danger { @apply px-0.5 py-0.5 text-sm font-medium text-white transition-colors bg-rose-600 hover:bg-rose-500 rounded-md; } } @layer utilities { @keyframes batteryTickWarn { 0%, 49% { background-color: rgba(255, 255, 255, 0.95); } 50%, 100% { background-color: rgba(239, 68, 68, 0.95); } } .battery-tick-warn { animation: batteryTickWarn 0.4s steps(2, end) infinite; } @keyframes batteryUrgentFlash { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0.25; } } .battery-urgent-flash { animation: batteryUrgentFlash 0.4s steps(2, end) infinite; } .no-touch-select { user-select: none; -webkit-user-select: none; -ms-user-select: none; -webkit-touch-callout: none; } } .ha-hue-slider { appearance: none; width: 100%; height: 0.45rem; border-radius: 9999px; background: linear-gradient( 90deg, #ff0000, #ffff00, #00ff00, #00ffff, #0000ff, #ff00ff, #ff0000 ); cursor: pointer; } .ha-hue-slider:disabled { opacity: 0.6; cursor: not-allowed; } .ha-hue-slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 0.75rem; height: 0.75rem; border-radius: 9999px; border: 1px solid rgba(255, 255, 255, 0.7); background: #ffffff; } .ha-hue-slider::-webkit-slider-runnable-track { height: 0.45rem; border-radius: 9999px; background: linear-gradient( 90deg, #ff0000, #ffff00, #00ff00, #00ffff, #0000ff, #ff00ff, #ff0000 ); } .ha-hue-slider::-moz-range-thumb { width: 0.75rem; height: 0.75rem; border-radius: 9999px; border: 1px solid rgba(255, 255, 255, 0.7); background: #ffffff; } .ha-hue-slider::-moz-range-track { height: 0.45rem; border-radius: 9999px; background: linear-gradient( 90deg, #ff0000, #ffff00, #00ff00, #00ffff, #0000ff, #ff00ff, #ff0000 ); }