.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-base);font-weight:500;border:none;border-radius:var(--radius);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;position:relative}.btn>:not(:last-child){margin-right:8px}.btn>*{pointer-events:none}.btn-primary{background:var(--primary);color:var(--primary-foreground)}.btn-secondary{background:var(--muted);color:var(--foreground)}.btn-outline{background:0 0;border:2px solid var(--border);color:var(--foreground)}.btn-ghost{background:0 0;color:var(--foreground)}.btn-danger{background:var(--destructive);color:var(--destructive-foreground)}.btn-lg{padding:var(--spacing-lg) var(--spacing-2xl);font-size:var(--font-size-lg)}.btn-sm{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm)}.card{background:var(--card);border-radius:var(--radius-lg);overflow:hidden}.card-body{padding:var(--spacing-lg)}.card-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border)}.card-footer{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border);background:rgba(0,0,0,.2)}.card-media{position:relative;height:0;padding-bottom:56.25%;background:rgba(255,255,255,.05);overflow:hidden}.card-media img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.nav-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);background:var(--card);border-radius:var(--radius-xl);min-height:200px;text-align:center}.nav-card-icon{width:80px;height:80px;margin-bottom:var(--spacing-md)}.nav-card-title{font-size:var(--font-size-xl);font-weight:600}.input{width:100%;padding:var(--spacing-md) var(--spacing-lg);background:var(--card);border:2px solid var(--border);border-radius:var(--radius);color:var(--foreground);font-size:var(--font-size-lg)}.input::placeholder{color:var(--muted-foreground)}.input-lg{padding:var(--spacing-lg) var(--spacing-xl);font-size:var(--font-size-xl)}.input-group{display:flex;flex-direction:column}.input-group>:not(:last-child){margin-bottom:8px}.input-label{font-size:var(--font-size-sm);font-weight:500;color:var(--muted-foreground)}.input-error{font-size:var(--font-size-sm);color:var(--destructive)}.list{display:flex;flex-direction:column}.list-item{display:flex;align-items:center;padding:var(--spacing-md) var(--spacing-lg);background:0 0;border-bottom:1px solid var(--border-light);transition:background var(--transition-fast)}.list-item>:not(:last-child){margin-right:16px}.list-item:last-child{border-bottom:none}.list-item-icon{width:40px;height:40px;border-radius:var(--radius);overflow:hidden;flex-shrink:0}.list-item-icon img{width:100%;height:100%;object-fit:cover}.list-item-content{flex:1;min-width:0}.list-item-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-item-subtitle{font-size:var(--font-size-sm);color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-item-badge{padding:var(--spacing-xs) var(--spacing-sm);background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600}.grid{display:grid;grid-gap:24px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-5{grid-template-columns:repeat(5,1fr)}.grid-6{grid-template-columns:repeat(6,1fr)}.channel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:16px}.poster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:24px}.poster-card{position:relative;height:0;padding-bottom:150%;border-radius:16px;overflow:hidden;background:rgba(255,255,255,.05)}.poster-card img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.poster-card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(0,0,0,.8) 0,transparent 50%);display:flex;flex-direction:column;justify-content:flex-end;padding:var(--spacing-md)}.poster-card-title{font-weight:600;line-height:1.2}.sidebar{display:flex;flex-direction:column;width:250px;height:100%;background:rgba(0,0,0,.5);border-right:1px solid var(--border-light)}.sidebar-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-light)}.sidebar-content{flex:1;overflow-y:auto;padding:var(--spacing-md)}.sidebar-item{display:flex;align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius);transition:background var(--transition-fast)}.sidebar-item>:not(:last-child){margin-right:16px}.sidebar-item.active{background:var(--muted)}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:200;animation:.2s fadeIn}.dialog{background:var(--card);border-radius:var(--radius-xl);padding:var(--spacing-2xl);min-width:400px;max-width:90vw;animation:.3s slideUp}.dialog-title{font-size:var(--font-size-2xl);font-weight:600;margin-bottom:var(--spacing-md)}.dialog-body{margin-bottom:var(--spacing-xl);color:var(--muted-foreground)}.dialog-actions{display:flex;justify-content:flex-end}.dialog-actions>:not(:first-child){margin-left:16px}.loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-2xl)}.spinner{width:40px;height:40px;border:3px solid var(--muted);border-top-color:var(--foreground);border-radius:50%;animation:.8s linear infinite spin}.spinner-sm{width:24px;height:24px;border-width:2px}.spinner-lg{width:64px;height:64px;border-width:4px}.toast-container{position:fixed;bottom:var(--spacing-xl);right:var(--spacing-xl);z-index:300;display:flex;flex-direction:column}.toast-container>:not(:last-child){margin-bottom:8px}.toast{padding:var(--spacing-md) var(--spacing-lg);background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-lg);animation:.3s slideUp;min-width:300px}.toast-success{border-left:4px solid #22c55e}.toast-error{border-left:4px solid var(--destructive)}.toast-info{border-left:4px solid var(--c)}.epg-panel{display:flex;flex-direction:column;height:100%;background:rgba(0,0,0,.3)}.epg-now{padding:var(--spacing-lg);background:var(--accent);color:#fff}.epg-now-title{font-weight:600;font-size:var(--font-size-lg)}.epg-now-time{font-size:var(--font-size-sm);opacity:.8}.epg-next{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-light)}.epg-next-title{color:var(--muted-foreground);font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs)}.epg-list{flex:1;overflow-y:auto;padding:var(--spacing-sm)}.epg-item{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius)}.epg-item-time{font-size:var(--font-size-xs);color:var(--muted-foreground)}.epg-item-title{font-size:var(--font-size-sm)}.badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase}.badge-live{background:#ef4444;color:#fff}.badge-hd{background:var(--c);color:#fff}.badge-4k{background:#8b5cf6;color:#fff}.badge-new{background:#22c55e;color:#fff}