{% extends "base.html" %} {% block title %}Settings - {{ app_name or 'Dune Weaver' }}{% endblock %} {% block additional_styles %} /* Dark mode styles for settings page */ .dark .bg-white { background-color: #262626; } .dark .text-slate-900 { color: #ffffff; } .dark .text-slate-800 { color: #f8fafc; } .dark .text-slate-700 { color: #f1f5f9; } .dark .text-slate-600 { color: #e2e8f0; } .dark .text-slate-500 { color: #e2e8f0; } /* Label overrides for better visibility */ .dark label { color: #f1f5f9; } .dark .border-slate-200 { border-color: #404040; } .dark .border-slate-300 { border-color: #404040; } .dark .divide-slate-100 { border-color: #333333; } .dark .bg-slate-50 { background-color: #262626; } .dark .hover\:bg-slate-50:hover { background-color: #404040; } .dark .bg-slate-100 { background-color: #404040; } .dark .form-input, .dark input[type="number"], .dark input[type="text"], .dark input[type="time"] { background-color: #1f1f1f; border-color: #404040; color: #e5e5e5; } .dark .form-input::placeholder { color: #9ca3af; } .dark .form-input:focus { border-color: #0c7ff2; ring-color: #0c7ff2; } .dark input[type="time"]::-webkit-calendar-picker-indicator { filter: invert(1); } .dark .form-select { background-color: #1f1f1f; border-color: #404040; color: #e5e5e5; } .dark .form-select:focus { border-color: #0c7ff2; ring-color: #0c7ff2; } .dark .focus\:ring-sky-500:focus { ring-color: #0c7ff2; } .dark .focus\:border-sky-500:focus { border-color: #0c7ff2; } .dark .hover\:text-gray-700:hover { color: #e5e5e5; } .dark .text-gray-400 { color: #9ca3af; } /* Autocomplete suggestions dark mode */ .dark #clearFromInSuggestions, .dark #clearFromOutSuggestions { background-color: #262626; border-color: #404040; } .dark .suggestion-item { color: #e5e5e5; } .dark .suggestion-item:hover { background-color: #404040; } .dark .suggestion-item.selected { background-color: #0c7ff2; color: white; } /* Light mode autocomplete styles */ .suggestion-item { padding: 8px 12px; cursor: pointer; color: #1f2937; transition: background-color 0.15s; } .suggestion-item:hover { background-color: #f3f4f6; } .suggestion-item.selected { background-color: #0c7ff2; color: white; } .suggestion-item mark { background-color: #fef3c7; font-weight: 600; } .dark .suggestion-item mark { background-color: #92400e; color: #fef3c7; } /* Toggle switch styles */ .switch { position: relative; display: inline-block; width: 60px; height: 34px; } .switch input { opacity: 0; width: 0; height: 0; } .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; transition: .4s; } .slider:before { position: absolute; content: ""; height: 26px; width: 26px; left: 4px; bottom: 4px; background-color: white; transition: .4s; } input:checked + .slider { background-color: #0c7ff2; } input:focus + .slider { box-shadow: 0 0 1px #0c7ff2; } input:checked + .slider:before { transform: translateX(26px); } .slider.round { border-radius: 34px; } .slider.round:before { border-radius: 50%; } /* Dark mode for switches */ .dark .slider { background-color: #404040; } .dark input:checked + .slider { background-color: #0c7ff2; } /* Spin animation for loading states */ @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .animate-spin { animation: spin 1s linear infinite; } /* Collapsible section styles */ .section-header { cursor: pointer; user-select: none; display: flex; justify-content: space-between; align-items: center; } .section-header:hover { background-color: #f8fafc; } .dark .section-header:hover { background-color: #333333; } .section-toggle-icon { transition: transform 0.2s ease-in-out; } .section-header.collapsed .section-toggle-icon { transform: rotate(-90deg); } .section-header.collapsed { border-bottom: none; } .section-content { overflow: hidden; transition: max-height 0.3s ease-in-out, opacity 0.2s ease-in-out, padding 0.2s ease-in-out; max-height: 2000px; opacity: 1; } .section-content.collapsed { max-height: 0; opacity: 0; padding-top: 0 !important; padding-bottom: 0 !important; } /* Time slot specific styles */ .time-slot-item { background-color: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 16px; transition: all 0.15s; } .dark .time-slot-item { background-color: #1e293b; border-color: #475569; } .time-slot-item:hover { border-color: #cbd5e1; } .dark .time-slot-item:hover { border-color: #64748b; } /* Info box dark mode - grey theme */ .dark .bg-blue-50 { background-color: #1f1f1f; } .dark .border-blue-200 { border-color: #404040; } .dark .text-blue-600 { color: #e2e8f0; } .dark .text-blue-800 { color: #f1f5f9; } .dark .text-blue-700 { color: #e2e8f0; } /* Amber box dark mode - grey theme */ .dark .bg-amber-50 { background-color: #1f1f1f; } .dark .border-amber-200 { border-color: #404040; } .dark .text-amber-600 { color: #f1f5f9; } /* Sky box dark mode - grey theme (Still Sands options) */ .dark .bg-sky-50 { background-color: #1f1f1f; } .dark .border-sky-200 { border-color: #404040; } /* Select dropdown dark mode */ .dark select { background-color: #1f1f1f; border-color: #404040; color: #e5e5e5; } .dark select:focus { border-color: #0c7ff2; } .dark select option { background-color: #1f1f1f; color: #e5e5e5; } .dark select optgroup { background-color: #262626; color: #9ca3af; } {% endblock %} {% block content %}

Settings

Device Connection expand_more

usb_off

Status

Disconnected

{% endblock %} {% block scripts %} {% endblock %}