* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #0f172a; color: #e2e8f0; }

#app { display: flex; min-height: 100vh; }
#sidebar { width: 240px; background: #1e293b; padding: 1rem; display: flex; flex-direction: column; }
#sidebar .logo { font-size: 1.5rem; font-weight: 800; color: #f97316; padding: 0.5rem 0 1rem; border-bottom: 1px solid #334155; margin-bottom: 1rem; }
#sidebar ul { list-style: none; flex: 1; }
#sidebar ul li { padding: 0.5rem 0.75rem; border-radius: 0.5rem; margin-bottom: 0.25rem; cursor: pointer; }
#sidebar ul li:hover, #sidebar ul li.active { background: #334155; }
#sidebar ul li a { color: #cbd5e1; text-decoration: none; display: block; }
#sidebar ul li.active a { color: #f97316; font-weight: 600; }
.sidebar-footer { padding-top: 1rem; border-top: 1px solid #334155; font-size: 0.875rem; }
#stream-status { color: #ef4444; }
#stream-status.online { color: #22c55e; }

#content { flex: 1; padding: 2rem; overflow-y: auto; }
#content header { margin-bottom: 2rem; }
#content header h1 { font-size: 1.75rem; font-weight: 700; }

.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; margin-bottom: 2rem; }
.card { background: #1e293b; border-radius: 0.75rem; padding: 1.5rem; }
.card h3 { font-size: 0.875rem; color: #94a3b8; margin-bottom: 0.5rem; }
.card .value { font-size: 2rem; font-weight: 700; color: #f97316; }

table { width: 100%; border-collapse: collapse; background: #1e293b; border-radius: 0.75rem; overflow: hidden; }
th, td { padding: 0.75rem 1rem; text-align: left; border-bottom: 1px solid #334155; }
th { background: #0f172a; color: #94a3b8; font-weight: 600; font-size: 0.75rem; text-transform: uppercase; }
tr:hover { background: #334155; }

.btn { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; border: none; border-radius: 0.5rem; font-weight: 600; cursor: pointer; font-size: 0.875rem; }
.btn-primary { background: #f97316; color: #fff; }
.btn-primary:hover { background: #ea580c; }
.btn-danger { background: #ef4444; color: #fff; }
.btn-danger:hover { background: #dc2626; }
.btn-sm { padding: 0.25rem 0.5rem; font-size: 0.75rem; }

.modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 100; justify-content: center; align-items: center; }
.modal.open { display: flex; }
.modal-content { background: #1e293b; border-radius: 1rem; padding: 2rem; min-width: 400px; max-width: 600px; max-height: 80vh; overflow-y: auto; }
.modal-content h2 { margin-bottom: 1rem; }
.form-group { margin-bottom: 1rem; }
.form-group label { display: block; font-size: 0.875rem; color: #94a3b8; margin-bottom: 0.25rem; }
.form-group input, .form-group select, .form-group textarea { width: 100%; padding: 0.5rem 0.75rem; background: #0f172a; border: 1px solid #334155; border-radius: 0.5rem; color: #e2e8f0; font-size: 0.875rem; }
.form-group select { cursor: pointer; }
.modal-actions { display: flex; gap: 0.5rem; justify-content: flex-end; margin-top: 1rem; }

.toolbar { display: flex; gap: 0.5rem; margin-bottom: 1rem; }
.search-input { padding: 0.5rem 0.75rem; background: #1e293b; border: 1px solid #334155; border-radius: 0.5rem; color: #e2e8f0; flex: 1; max-width: 300px; }

.now-playing { background: linear-gradient(135deg, #1e293b, #334155); border-radius: 1rem; padding: 2rem; margin-bottom: 2rem; }
.now-playing h2 { color: #94a3b8; font-size: 0.875rem; text-transform: uppercase; margin-bottom: 0.5rem; }
.now-playing .title { font-size: 1.5rem; font-weight: 700; }
.now-playing .meta { color: #94a3b8; margin-top: 0.25rem; }

.schedule-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.5rem; }
.schedule-day { background: #1e293b; border-radius: 0.5rem; padding: 0.75rem; min-height: 120px; }
.schedule-day .day-name { font-weight: 600; color: #f97316; margin-bottom: 0.5rem; font-size: 0.875rem; }
.schedule-event { background: #334155; padding: 0.25rem 0.5rem; border-radius: 0.25rem; font-size: 0.75rem; margin-bottom: 0.25rem; cursor: pointer; }
.schedule-event:hover { background: #475569; }
.empty-state { text-align: center; padding: 3rem; color: #64748b; }
